import pandas as pd


我有一个数据框表

d1 = pd.DataFrame({'ID_A':[1, 2, 3], 'name':['Micha', 'Micha', 'Lea']})

-----------------
- ID_A   - name
-----------------
- 1      - Micha
- 2      - Micha
- 3      - Lea
-----------------


我想做一个自我加入以获得以下内容

---------------------------
- ID_A_x - name  - ID_A_y -
---------------------------
- 1      - Micha - 1      -
- 1      - Micha - 2      -
- 3      - Lea   - 3      -
---------------------------


但是随着

pd.merge(d1, d1, left_on='name', right_on='name', how='left')


我得到对我相同的重复对,如何避免它们?
这个结果不是我想要的:

---------------------------
- ID_A_x - name  - ID_A_y -
---------------------------
- 1      - Micha - 1      -
- 1      - Micha - 2      -
- 2      - Micha - 2      -
- 2      - Micha - 1      -
- 3      - Lea   - 3      -
---------------------------


请帮忙。

最佳答案

pd.DataFrame({'ID_A_x':[1,1,2,2,3],
             'name':['Mi','Mi','Mi','Mi','Lea'],
             'ID_A_y':[1,2,2,1,3]}).drop_duplicates(['ID_A_y','name'])

10-07 15:27