簡體   English   中英

列表的嵌套字典為 dataframe

[英]Nested dictionary of lists to dataframe

我有一本這樣的字典:

 {'a': {'col_1': [1, 2], 'col_2': ['a', 'b']},
 'b': {'col_1': [3, 4], 'col_2': ['c', 'd']}}

當我嘗試將其轉換為 dataframe 時,得到以下信息:

     col_1  col_2
a   [1, 2]  [a, b]
b   [3, 4]  [c, d]

但我需要的是:

     col_1  col_2
a      1      a
       2      b
b      3      c
       4      d

我怎樣才能得到這種格式。 也許我也應該更改輸入格式? 感謝您的幫助=)

您可以使用pd.DataFrame.from_dict設置orient='index'以便將字典鍵設置為數據框的索引,然后通過應用pd.Series.explode所有列:

pd.DataFrame.from_dict(d, orient='index').apply(pd.Series.explode)

  col_1 col_2
a     1     a
a     2     b
b     3     c
b     4     d

您可以運行生成器理解並應用 pandas concat ...理解適用於字典的值,它們本身就是字典:

pd.concat(pd.DataFrame(entry).assign(key=key) for key,entry in data.items()).set_index('key')

    
    col_1   col_2
key     
a    1       a
a    2       b
b    3       c
b    4       d

更新

仍然使用連接; 無需為單個數據幀分配key

 (pd.concat([pd.DataFrame(entry) 
             for key, entry in data.items()], 
             keys=data)
  .droplevel(-1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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