将具有多个键值的字典映射到数据框
我有一个有多个键值的字典。
d = {(0, 0, 'Shift 2 (2000 FT)'): 0.0, (0, 0, 'Shift 1 (0800 FT)'): 0.0, (0, 1, 'Shift 2 (2000 FT)'): 0.0, (0, 1, 'Shift 1 (0800 FT)'): 0.0, (0, 2, 'Shift 2 (2000 FT)'): 0.0, (0, 2, 'Shift 1 (0800 FT)'): 0.0}
我想将它转换为数据框,如下所示,其中第一个索引称为“WEEK”,第二个称为“DAY”,第三个索引称为列。
请指教。谢谢!
回答
您可以在 dict 中阅读,然后将 Index 转换为 MultiIndex 并重塑。
import pandas as pd
df = pd.DataFrame.from_dict(d, orient='index')
df.index = pd.MultiIndex.from_tuples(df.index)
df = (df[0].unstack(-1)
.rename_axis(index=['Week', 'Day'])
.reset_index())
Week Day Shift 1 (0800 FT) Shift 2 (2000 FT)
0 0 0 0.0 0.0
1 0 1 0.0 0.0
2 0 2 0.0 0.0
您还可以使用普通构造函数一次性创建带有 MultiIndex 的初始 DataFrame。然后进行拆垛。
df = pd.DataFrame(data=d.values(), index=d.keys())