我在下面的词典中有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}
答案 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