У меня есть датафрейм, подобный следующему
df Name Y 0 A 1 1 A 0 2 B 0 3 B 0 5 C 1
Я хочу отбросить дубликаты Name и оставить те, которые имеют Y=1, такие как:
Name
Y=1
df Name Y 0 A 1 1 B 0 2 C 1
Содержит ли столбец «Y» только 0-1? В этом случае вы можете попробовать следующее:
df = df.sort_values(['Y'], ascending= False) df = df.drop_duplicates(['Name'])
groupby
max
Предполагая, что ваша серия Y состоит только из значений 0 и 1:
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
Попробуйте это:
In [2358]: df.groupby('Name')['Y'].max() Out[2358]: Name A 1 B 0 C 1 Name: Y, dtype: int64
Использовать drop_duplicates метод,
drop_duplicates
df.sort_values('Y', ascending= False).drop_duplicates(subset=['Name'])