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

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

Susan Sarandon
Susan Sarandon原創
2024-12-02 18:52:12261瀏覽

How Can I Create a Pandas DataFrame with a Hierarchical Index from a Nested Dictionary?

從具有層次索引的嵌套字典建構pandas DataFrame

本文解決了將嵌套字典轉換為pandas DataFrame 的需要分層索引。字典的結構以 UserIds 作為第一級,Categories 作為第二級,各種屬性作為第三級,這對創建所需的 DataFrame 結構提出了挑戰。

建構具有預期分層索引的 DataFrame ,第一個解決方案涉及重塑嵌套字典。字典中的每個鍵應該是與多個索引的值對應的元組。使用 pd.DataFrame.from_dict 並設定 orient='index',可以建立 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')

另一種方法是透過連接元件資料幀來建構 DataFrame。此方法為每個UserId 附加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)

透過實作其中一種方法,可以從嵌套字典中建構具有分層索引的pandas DataFrame,從而簡化資料的組織和分析.

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

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