首頁 >後端開發 >Python教學 >如何從嵌套字典建立具有分層索引的 Pandas DataFrame?

如何從嵌套字典建立具有分層索引的 Pandas DataFrame?

Barbara Streisand
Barbara Streisand原創
2024-11-30 17:25:13462瀏覽

How to Create a Pandas DataFrame with Hierarchical Indexing from a Nested Dictionary?

使用分層索引從巢狀字典值建構Pandas DataFrame

考慮一個嵌套字典值建構Pandas DataFrame

考慮一個巢狀字典鍵代表UserId,第二級鍵是類別,第三級鍵是各種屬性。目標是使用第三級中的值來建立具有分層索引的 pandas DataFrame。
user_dict = {12: {'Category 1': {'att_1': 1, 'att_2': 'whatever'},
                  'Category 2': {'att_1': 23, 'att_2': 'another'}},
             15: {'Category 1': {'att_1': 10, 'att_2': 'foo'},
                  'Category 2': {'att_1': 30, 'att_2': 'bar'}}}

pd.DataFrame.from_dict({(i,j): user_dict[i][j] 
                           for i in user_dict.keys() 
                           for j in user_dict[i].keys()},
                       orient='index')


               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar

為了實現此目標,我們需要將字典的鍵重塑為表示分層索引的元組。使用pd.DataFrame.from_dict,我們可以建立具有正確索引結構的DataFrame:

user_ids = []
frames = []

for user_id, d in user_dict.iteritems():
    user_ids.append(user_id)
    frames.append(pd.DataFrame.from_dict(d, orient='index'))

pd.concat(frames, keys=user_ids)

               att_1     att_2
12 Category 1      1  whatever
   Category 2     23   another
15 Category 1     10       foo
   Category 2     30       bar

另一種方法涉及連接從每個字典條目創建的各個DataFrame:

兩者方法使用巢狀字典第三層中的值有效地建構具有分層索引的DataFrame。

以上是如何從嵌套字典建立具有分層索引的 Pandas DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn