熊猫从单个字典列表构建数据框

我有一个单一字典列表:


foo = [

{'A': 'a1'}, {'B': 'b1'},{'C': 'c1'},

 {'A': 'a2'}, {'B': 'b2'}, {'C': 'c2'},

 {'A': 'a3'}, {'B': 'b3'},{'C': 'c3'}

]

我想构建一个像这样的 DataFrame。

https://img3.mukewang.com/6512a4ae000167c901750106.jpg

我尝试使用此解决方案将字典列表分组为单个字典 将相同键的值合并到字典列表中

bar = {

    k: [d.get(k) for d in foo]

    for k in set().union(*foo)

}


pd.DataFrame(bar)

但输出看起来并不好。

https://img1.mukewang.com/6512a4be000136a001730250.jpg

有人可以帮忙吗?



交互式爱情
浏览 95回答 2
2回答

MM们

您可以更改字典理解来过滤缺失值:bar = {    k: [d[k] for d in foo if k in d]    for k in set().union(*foo)}

犯罪嫌疑人X

首先转换为列的字典: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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python