自合并后在 Pandas 数据框中重复

Duplicates in Pandas Dataframe after Self Merge

import pandas as pd

我有一个数据框Table

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      -
---------------------------

请帮忙。

我不确定我是否理解正确。但一种可能的解决方案(我认为这是你想要的)可能是:

import pandas as pd
d1 = pd.DataFrame({'ID_A':[1, 2, 3], 'name':['Micha', 'Micha', 'Lea']})
pd.merge(d1.drop_duplicates(subset='name'), d1, on='name', how='left')

输出:

   ID_A_x   name  ID_A_y
0       1  Micha       1
1       1  Micha       2
2       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'])