匹配数据框中的两列
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
您可以将 groupby
与 agg
一起使用,并获得 first
的 Name
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']]
我在数据框 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
您可以将 groupby
与 agg
一起使用,并获得 first
的 Name
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']]