[英]pandas insert or join or merge two tables by comparing multiple conditions?
我正在尝试合并两个表。
如下图,我有两个表,表 1 有 x,y,z,id1,id2,表 2 有 id,a,b
我想将这两张表合并成一张决赛桌(最后一张)
如果表 1 有一个 id 列,我想我可以像下面的代码一样合并
df_2.insert(0, 'x',df_2['id'].map(df_1.set_index('id')['x']))
df_2.insert(0, 'y',df_2['id'].map(df_1.set_index('id')['y']))
df_2.insert(0, 'y',df_2['id'].map(df_1.set_index('id')['z']))
但我遇到了麻烦,因为表 1 有多个“ID”列......
请帮我。
附言。 对不起我糟糕的英语技能。
在使用melt
重塑数据框后使用merge
:
out = (df2.merge(df1.melt(['x', 'y', 'z'], value_name='id'), on='id')
.drop(columns='variable'))
print(out)
# Output
id a b x y z
0 1 a1 b1 10 40 70
1 2 a2 b2 10 40 70
2 3 a3 b3 20 50 80
3 4 a4 b4 20 50 80
4 5 a5 b5 30 60 90
5 6 a6 b6 30 60 90
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.