列表的嵌套字典到数据框

时间:2020-04-14 21:36:44

标签: python pandas dictionary

我有这样的字典:

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

当我尝试将其转换为数据框时,请获取以下内容:

     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

如何获取此格式。也许我也应该更改输入格式? 感谢您的帮助=)

2 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

您可以运行generator comprehension并应用大熊猫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