[英]Nested dictionary of lists to dataframe
我有一本這樣的字典:
{'a': {'col_1': [1, 2], 'col_2': ['a', 'b']},
'b': {'col_1': [3, 4], 'col_2': ['c', 'd']}}
當我嘗試將其轉換為 dataframe 時,得到以下信息:
col_1 col_2
a [1, 2] [a, b]
b [3, 4] [c, d]
但我需要的是:
col_1 col_2
a 1 a
2 b
b 3 c
4 d
我怎樣才能得到這種格式。 也許我也應該更改輸入格式? 感謝您的幫助=)
您可以使用pd.DataFrame.from_dict
設置orient='index'
以便將字典鍵設置為數據框的索引,然后通過應用pd.Series.explode
所有列:
pd.DataFrame.from_dict(d, orient='index').apply(pd.Series.explode)
col_1 col_2
a 1 a
a 2 b
b 3 c
b 4 d
您可以運行生成器理解並應用 pandas concat ...理解適用於字典的值,它們本身就是字典:
pd.concat(pd.DataFrame(entry).assign(key=key) for key,entry in data.items()).set_index('key')
col_1 col_2
key
a 1 a
a 2 b
b 3 c
b 4 d
更新:
仍然使用連接; 無需為單個數據幀分配key
:
(pd.concat([pd.DataFrame(entry)
for key, entry in data.items()],
keys=data)
.droplevel(-1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.