我希望两个数据帧连接两个具有不同索引的数据帧,并返回一个新数据帧,其中包含匹配的两个帧的索引。
df_a
包含许多模拟的结果值。
df_b
,对于每个组和三个不同的“级别”,包含我们想要检索的结果模拟值。最终输出应该是一个包含每个组、级别和匹配模拟的数据帧。例如,对于“Group_1”,“Level_1”模拟“Sim_5”就是我们想要的模拟。
df_a = pd.DataFrame({'Group_1': [5, 2, 3, 4, 1],
'Group_2': [1, 4, 3, 2, 5],
'Group_3': [2, 1, 5, 4, 3]},
index=['Sim_1', 'Sim_2', 'Sim_3', 'Sim_4', 'Sim_5'])
df_b = pd.DataFrame({'Group_1': [1, 2, 4],
'Group_2': [2, 5, 1],
'Group_3': [3, 2, 4]},
index=['Level_1', 'Level_2', 'Level_3'])
# Expected output
df_c = pd.DataFrame(data=['Sim_5', 'Sim_2', 'Sim_4', 'Sim_4', 'Sim_5', 'Sim_1', 'Sim_5', 'Sim_1', 'Sim_4'],
index=pd.MultiIndex.from_product([['Group_1', 'Group_2', 'Group_3'], ['Level_1', 'Level_2', 'Level_3']]))
Out[54]:
0
Group_1 Level_1 Sim_5
Level_2 Sim_2
Level_3 Sim_4
Group_2 Level_1 Sim_4
Level_2 Sim_5
Level_3 Sim_1
Group_3 Level_1 Sim_5
Level_2 Sim_1
Level_3 Sim_4
有人能想出一个好办法来实现这一点吗?我可能能够“暴力破解”一些东西,但我更喜欢一个干净的实现。