[英]Python Pandas: Nested Dictionary
我列出了一些希望使用Pandas進行操作的詞典。 說:
m = [{"topic": "A", "type": "InvalidA", "count": 1}, {"topic": "A", "type": "InvalidB", "count": 1}, {"topic": "A", "type": "InvalidA", "count": 1}, {"topic": "B", "type": "InvalidA", "count": 1}, {"topic": "B", "type": "InvalidA", "count": 1}, {"topic": "B", "type": "InvalidB", "count": 1}]
1)首先使用構造函數創建一個數據框:
df = pd.DataFrame(m)
2)按['topic]和['type']列分組並計數
df_group = df.groupby(['topic', 'type']).count()
我最終得到:
count
topic type
A InvalidA 2
InvalidB 1
B InvalidA 2
InvalidB 1
我現在想將其轉換為嵌套字典:
{ "A" : {"InvalidA" : 2,
"InvalidB" : 1},
"B" : {"InvalidA" : 2,
"InvalidB": 1}
}
關於如何從df_group
轉換為嵌套字典的任何建議?
使用unstack
+ to_dict
df_group['count'].unstack(0).to_dict()
Out[446]: {'A': {'InvalidA': 2, 'InvalidB': 1}, 'B': {'InvalidA': 2, 'InvalidB': 1}}
並將您的groupby
稍微更改為crosstab
pd.crosstab(df.type,df.topic).to_dict()
Out[449]: {'A': {'InvalidA': 2, 'InvalidB': 1}, 'B': {'InvalidA': 2, 'InvalidB': 1}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.