我有一个单一字典列表:foo = [{'A': 'a1'}, {'B': 'b1'},{'C': 'c1'}, {'A': 'a2'}, {'B': 'b2'}, {'C': 'c2'}, {'A': 'a3'}, {'B': 'b3'},{'C': 'c3'}]我想构建一个像这样的 DataFrame。我尝试使用此解决方案将字典列表分组为单个字典 将相同键的值合并到字典列表中bar = { k: [d.get(k) for d in foo] for k in set().union(*foo)}pd.DataFrame(bar)但输出看起来并不好。有人可以帮忙吗?
2 回答
MM们
TA贡献1886条经验 获得超2个赞
您可以更改字典理解来过滤缺失值:
bar = {
k: [d[k] for d in foo if k in d]
for k in set().union(*foo)
}
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
首先转换为列的字典:
from collections import defaultdict
bar = defaultdict(list)
for dict_ in foo:
for key, value in dict_.items():
bar[key].append(value)
那么它就变得微不足道了:
pd.DataFrame(bar)
# Out
# A B C
# 0 a1 b1 c1
# 1 a2 b2 c2
# 2 a3 b3 c3
添加回答
举报
0/150
提交
取消