我有一个列表,看起来像:
[['A'],
['America'],
['2017-39', '2017-40', '2017-41', '2017-42', '2017-43'],
[10.0, 6.0, 6.0, 6.0, 1.0],
[5.0,7.0,8.0,9.0,1.0],
,
['B'],
['Britan'],
['2017-38', '2017-39', '2017-40', '2017-41', '2017-42', '2017-43', '2017-44'],
[41.0, 27.0, 38.0, 36.0, 33.0, 41.0, 8.0],
[40.0, 38.0, 28.0, 27.0, 23.0, 65.0, 4.0]]
我想把它转换成一个数据框,它应该看起来像
A America 2017-39 10.0 5.0
na na 2017-40 6.0 7.0
na na 2017-41 6.0 8.0
na na 2017-42 6.0 9.0
na na 2017-43 1.0 10.0
B Britan 2017-38 41.0 40.0
na na 2017-39 27.0 38.0
na na 2017-40 38.0 28.0
na na 2017-41 36.0 27.0
na na 2017-42 33.0 23.0
na na 2017-43 41.0 65.0
na na 2017-44 8.0 4.0
我如何编写代码以使其成为可能,因为我对 python 很陌生,我很难过。
我将非常感谢您在这方面帮助我的时间和精力
最佳答案
我正在使用 groupby
并重新创建列
s=pd.DataFrame(lst).T
s.columns=s.columns//5
pd.concat([pd.DataFrame(x.values) for _,x in s.groupby(level=0,axis=1)]).dropna(axis=0,thresh=1)
Out[146]:
0 1 2 3 4
0 A America 2017-39 10 5
1 None None 2017-40 6 7
2 None None 2017-41 6 8
3 None None 2017-42 6 9
4 None None 2017-43 1 1
0 B Britan 2017-38 41 40
1 None None 2017-39 27 38
2 None None 2017-40 38 28
3 None None 2017-41 36 27
4 None None 2017-42 33 23
5 None None 2017-43 41 65
6 None None 2017-44 8 4
关于python - 如何在python中将列表列表转换为数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50437159/