【发布时间】:2020-12-04 07:15:33
【问题描述】:
我想加入两个 pandas 数据帧,其中一个具有多索引列。
这就是我制作第一个数据帧的方式。
data_large = pd.DataFrame({"name":["a", "b", "c"], "sell":[10, 60, 50], "buy":[20, 30, 40]})
data_mini = pd.DataFrame({"name":["b", "c", "d"], "sell":[60, 20, 10], "buy":[30, 50, 40]})
data_topix = pd.DataFrame({"name":["a", "b", "c"], "sell":[10, 80, 0], "buy":[70, 30, 40]})
df_out = pd.concat([dfi.set_index('name') for dfi in [data_large, data_mini, data_topix]],
keys=['Large', 'Mini', 'Topix'], axis=1)\
.rename_axis(mapper=['name'], axis=0).rename_axis(mapper=['product','buy_sell'], axis=1)
df_out
这是第二个数据帧。
group = pd.DataFrame({"name":["a", "b", "c", "d"], "group":[1, 1, 2, 2]})
group
如何在 name 列上将第二个连接到第一个,同时保留多索引列?
这不起作用,它使多索引变平。
df_final = df_out.merge(group, on=['name'], how='left')
任何帮助将不胜感激!
【问题讨论】:
标签: pandas join multi-index