我有一个这样的列表:
[{'FirstOfficer': '1'}, {'SecondOfficer': '2'}, {'ThirdOfficer': '3'},{'FirstOfficer': '4'}, {'SecondOfficer': '5'}, {'ThirdOfficer': '6'},{'FirstOfficer': '7'}, {'SecondOfficer': '8'}, {'ThirdOfficer': '9'},{'FirstOfficer': '10'}, {'SecondOfficer': '11'}, {'ThirdOfficer': '12'}]
我想将其转换为数据帧,但我得到了这样的数据帧:
FirstOfficer SecondOfficer ThirdOfficer
0 1 NaN NaN
1 NaN 2 NaN
2 NaN NaN 3
3 4 NaN NaN
4 NaN 5 NaN
5 NaN NaN 6
6 7 NaN NaN
7 NaN 8 NaN
8 NaN NaN 9
9 10 NaN NaN
10 NaN 11 NaN
11 NaN NaN 12
列名称可以是任何内容,因此我无法对其进行硬编码。
预期的数据帧是:
FirstOfficer SecondOfficer ThirdOfficer
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
有人能给我建议一个解决方案吗?
如有任何帮助,我们将不胜感激。
最佳答案
使用defaultdict
来存储要按字典键列出的值:
from collections import defaultdict
d = defaultdict(list)
for x in L:
a, b = tuple(x.items())[0]
d[a].append(b)
print (d)
df = pd.DataFrame(d)
print (df)
FirstOfficer SecondOfficer ThirdOfficer
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
关于python - 将相同字典的列表转换为 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56127045/