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'])