我是Python和Stackoverflow的新手,请耐心等待。我有一个大约140k行的大型数据文件,以csv格式存储。该文件根据年龄段(例如, 16-24、24-50等。在每个休息时间,都有有关受试者年龄和病历的信息行。将csv加载到熊猫中后,我尝试使用iloc将年龄段的信息行划分为几个较小的数据框。现在,我有一个数据框列表。我可以访问列表中的每个数据框,没问题,但是(由于信息行,我想是)熊猫将所有信息显示在一列中。有没有一种方法可以格式化输出并使熊猫显示列标题并将信息行放入列标题上方的标题中?很抱歉,如果不清楚,请随时提出任何修改建议。
csv中的数据如下所示:
0 Some information
1 Some information
2 Some information
3
4
5 a | b | c | d |
6 a | 1 | 1 | 1 |
7 a | 1 | 1 | 1 |
8 a | 1 | 1 | 1 |
9
10 Some information
11 Some information
12 Some information
13
14
15 a | b | c | d |
16 a | 1 | 1 | 1 |
17 a | 1 | 1 | 1 |
18 a | 1 | 1 | 1 |
我使用iloc按行索引在信息行中对此进行了分解。
36065,43278,50491,57704,
64917,72130,79343,86556,
93769,100982,108195,115408,
122621,129834,137047]
l_mod = [0] + l + [max(l)+1]
list_of_dfs = [mydata_df.iloc[l_mod[n]:l_mod[n+1]] for n in range(len(l_mod)-1)]
访问时使用的是:
df1_df=list_of_dfs[1]
当前输出如下:
0
--------------------
1 a,b,c
2 a,1,1,
我希望这是有道理的,请提出建议,我将尽力解释。
最佳答案
您可以尝试df[0].str.split(',', expand=True)
,它会基于逗号的每个拆分来扩展数据框。然后,您可以为其分配新的列名称,因为它将给出列名称[0, 1, 2, 3.. etc]