我有一个如下数据框
df
Name Y
0 A 1
1 A 0
2 B 0
3 B 0
5 C 1
我想删除Name
的副本,并保留具有Y=1
的副本,例如:
df
Name Y
0 A 1
1 B 0
2 C 1
答案 0 :(得分:2)
使用drop_duplicates
方法
df.sort_values('Y', ascending= False).drop_duplicates(subset=['Name'])
答案 1 :(得分:2)
groupby
+ max
假设您的Y
系列仅包含0
和1
值:
res = df.groupby('Name', as_index=False)['Y'].max()
print(res)
Name Y
0 A 1
1 B 0
2 C 1
答案 2 :(得分:1)
“ Y”列仅包含0-1吗?在这种情况下,您可以尝试以下操作:
df = df.sort_values(['Y'], ascending= False)
df = df.drop_duplicates(['Name'])
答案 3 :(得分:0)
尝试一下:
In [2358]: df.groupby('Name')['Y'].max()
Out[2358]:
Name
A 1
B 0
C 1
Name: Y, dtype: int64