Python: как отбросить дубликаты с дубликатами? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть датафрейм, подобный следующему

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

Ответы [ 4 ]

0 голосов
/ 16 ноября 2018

Содержит ли столбец «Y» только 0-1? В этом случае вы можете попробовать следующее:

df = df.sort_values(['Y'], ascending= False)
df = df.drop_duplicates(['Name'])
0 голосов
/ 16 ноября 2018

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
0 голосов
/ 16 ноября 2018

Попробуйте это:

In [2358]: df.groupby('Name')['Y'].max()
Out[2358]: 
Name
A    1
B    0
C    1
Name: Y, dtype: int64
0 голосов
/ 16 ноября 2018

Использовать drop_duplicates метод,

df.sort_values('Y', ascending= False).drop_duplicates(subset=['Name'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...