将嵌套字典转换为熊猫数据框

时间:2020-05-13 19:33:50

标签: python pandas

我在下面的词典中有Time#device#唯一标识该行。

d= {"Time1": {"device1": {"param1": 100, "param2": 0.1}}, "Time2": {"device1": {"param3": 0.1, "param1": 0.9}}}

预期数据帧应为

Time   device   param1  param2  param3
Time1  device1   100     0.1     
Time2  device1   0.9             0.1

我在下面尝试过,但无法正常工作

pd.DataFrame.from_dict(d,'index').rename_axis(columns='Time').reset_index()

我的结果:

   Time  index     device1
    0     Time1  {'param1': 100, 'param2': 0.1}
    1     Time2  {'param3': 0.1, 'param1': 0.9}

1 个答案:

答案 0 :(得分:2)

您可以对dict理解进行concat

(pd.concat([pd.DataFrame(v).T for v in d.values()],
          keys=d.keys())
    .rename_axis(index=['Time','Device'])
    .reset_index()
)

输出:

    Time   Device  param1  param2  param3
0  Time1  device1   100.0     0.1     NaN
1  Time2  device1     0.9     NaN     0.1