從具有層次索引的嵌套字典建構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中文網其他相關文章!