匹配数据框中的两列

Match two columns in dataframe

我在数据框 df 中有两列

  ID      Name
AXD2     SAM S
AXD2       SAM
SCA4       JIM
SCA4 JIM JONES
ASCQ      JOHN

我需要输出来获得一个唯一的 ID,并且应该只匹配名字,

  ID  Name
AXD2 SAM S
SCA4   JIM
ASCQ  JOHN

有什么建议吗?

使用drop_duplicates:

out = df.drop_duplicates('ID', ignore_index=True)
print(out)

# Output
     ID   Name
0  AXD2  SAM S
1  SCA4    JIM
2  ASCQ   JOHN

您可以将 groupbyagg 一起使用,并获得 firstName

df.groupby(['ID']).agg(first_name=('Name', 'first')).reset_index()

您可以使用 cumcount() 查找 ID 的第一个迭代名称

df['RN'] = df.groupby(['ID']).cumcount() + 1
df = df.loc[df['RN'] == 1]
df[['ID', 'Name']]