df_list に入っているデータフレームは全て同じ列名ですか?
はい。すべて同じ列名です。
テストデータを作成して試してみました。
python
1import pandas as pd
2import numpy as np
3
4df_list = []
5
6df_list.append(pd.DataFrame({
7 'A': [1], 'B': [2], 'C': [3], 'D': [4],
8}))
9
10df_list.append(pd.DataFrame({
11 'A': [5, 9], 'B': [6, 10], 'C': [7, 11], 'D': [8, 12],
12}))
13
14df_list.append(pd.DataFrame({
15 'A': [13, 17, 21], 'B': [14, 18, 22], 'C': [15, 19, 23], 'D': [16, 20, 24],
16}))
17
18for i, df in enumerate(df_list):
19 print(f'df_list[{i}]:\n{df}', end='\n\n')
20
21# Save to a CSV file
22with open('output.csv', 'w') as f:
23 for df in df_list:
24 df.to_csv(f, mode='a')
25
26# df_list
27df_list[0]:
28 A B C D
290 1 2 3 4
30
31df_list[1]:
32 A B C D
330 5 6 7 8
341 9 10 11 12
35
36df_list[2]:
37 A B C D
380 13 14 15 16
391 17 18 19 20
402 21 22 23 24
output.csv
csv
1,A,B,C,D
20,1,2,3,4
3,A,B,C,D
40,5,6,7,8
51,9,10,11,12
6,A,B,C,D
70,13,14,15,16
81,17,18,19,20
92,21,22,23,24
output.csv を読み込んでデータフレームリストへ再構成します。
python
1df_list = pd.read_csv('output.csv')
2idx = [-1] + np.where(df_list.iloc[:,0].isnull())[0].tolist() + [len(df_list)]
3df_list = [
4 df_list.iloc[(a+1):b][df_list.columns[1:]].reset_index(drop=True)
5 for a, b in zip(idx, idx[1:])]
6
7for i, df in enumerate(df_list):
8 print(f'df_list[{i}]:\n{df}', end='\n\n')
9
10#
11df_list[0]:
12 A B C D
130 1 2 3 4
14
15df_list[1]:
16 A B C D
170 5 6 7 8
181 9 10 11 12
19
20df_list[2]:
21 A B C D
220 13 14 15 16
231 17 18 19 20
242 21 22 23 24