我有一個單一字典列表: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
提交
取消