繁体   English   中英

pandas 通过比较多个条件来插入或连接或合并两个表?

[英]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”列......

请帮我。

附言。 对不起我糟糕的英语技能。

表格1
表格1

表 2
表2

决赛桌
决赛桌

在使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM