df1
'ID' 'Prod1' 'Prod2'
1 223 2B 3C
2 224 3C 2B
3 225 3C 4B
要查看我使用合并的“ ID”重复项,请执行以下操作:
dupli = pd.merge(df1, df1, how='inner', left_on='Prod1', right_on='Prod2')
我得到:
dupli
'ID_x' 'ID_y' 'Prod1' 'Prod2'
1 223 224 2B 3C
2 224 223 3C 2B
3 225 223 3C 2B
但我想要这样的东西:
'ID_x' 'ID_y' 'Prod1_x' 'Prod1_y'
1 223 224 2B 3C
2 224 223 3C 2B
3 225 Something 3C something
当我使用merge时,该函数采用第一个值,但是我希望该函数替换而不是第一个值,或者检查
Prod1==Prod2 and Prod2==Prod1
最佳答案
以下生成您要查找的结果表。要确保选中Prod1==Prod2 and Prod2==Prod1
,只需使用左联接在['Prod1, 'Prod2']
和['Prod2', 'Prod1']
上合并并选择所需的列即可。
(pd
.merge(df1, df1, how='left', left_on=['Prod1', 'Prod2'], right_on=['Prod2', 'Prod1'])
[['ID_x', 'ID_y', 'Prod1_x', 'Prod1_y']]
)
输出:
ID_x ID_y Prod1_x Prod1_y
0 223 224.0 2B 3C
1 224 223.0 3C 2B
2 225 NaN 3C NaN
关于python - 在Python中合并两个数据框,以查看ID的重复情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41226372/