Pandas 如何合并来自两个不同数据帧的相同列
我有两个数据帧A和B。它们都有相同的4列。我想合并两个数据帧,这样如果前三列值匹配,那么合并id值(这是一个jasonb数组) 样本数据: 德福阿 德福 我希望最终输出看起来像 最终输出:Pandas 如何合并来自两个不同数据帧的相同列,pandas,Pandas,我有两个数据帧A和B。它们都有相同的4列。我想合并两个数据帧,这样如果前三列值匹配,那么合并id值(这是一个jasonb数组) 样本数据: 德福阿 德福 我希望最终输出看起来像 最终输出: 一个快速的解决方案是 l=['name','age','zip'] df=(df1.set_index(l)+df2.set_index(l)).reset_index() 另一个选项是合并,然后使用列表理解来处理“id”列 output = df_A.merge(df_B, on=['name', 'ag
一个快速的解决方案是
l=['name','age','zip']
df=(df1.set_index(l)+df2.set_index(l)).reset_index()
另一个选项是
合并
,然后使用列表理解来处理“id”列
output = df_A.merge(df_B, on=['name', 'age', 'zip'])
output['id'] = [[*x, *y] for x, y in zip(output.pop('id_x'), output.pop('id_y'))]
output
name age zip id
0 abc 25 11111 [2722, 2855, 3583, 123, 234]
name age zip id
----------------------------------------------------------------
abc 25 11111 ["2722", "2855", "3583", "123", "234"]
l=['name','age','zip']
df=(df1.set_index(l)+df2.set_index(l)).reset_index()
output = df_A.merge(df_B, on=['name', 'age', 'zip'])
output['id'] = [[*x, *y] for x, y in zip(output.pop('id_x'), output.pop('id_y'))]
output
name age zip id
0 abc 25 11111 [2722, 2855, 3583, 123, 234]