簡體   English   中英

Python Pandas:嵌套字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM