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/

10-09 17:08