Отбросьте дубликаты на основе одного конкретного значения Панды - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть фрейм данных, где я пытаюсь удалить дубликаты на основе подмножества, но только для определенного значения.

У меня есть следующий фрейм данных:

Date          Name        Task  Hours  

2019-09-26    John Smith  A     24
2019-09-26    Bruce Pitt  A     24
2019-09-27    John Smith  A     12
2019-09-27    John Smith  B     12
2019-09-28    Emma Garcia A     24
2019-09-28    Emma Garcia E     24

Я бынравится удалять дублирующиеся строки на основе Date, Name и Hours, но только там, где hours = 24

Я знаю, как удалить дубликаты, но я не знаю, как добавить это конкретное условиезначение в этой строке:

df1.drop_duplicates(subset=['Date', 'Name','Hours'],keep='first', inplace=True)

Ожидаемый результат:

Date          Name        Task  Hours  

2019-09-26    John Smith  A     24
2019-09-26    Bruce Pitt  A     24
2019-09-27    John Smith  A     12
2019-09-27    John Smith  B     12
2019-09-28    Emma Garcia A     24

1 Ответ

3 голосов
/ 26 сентября 2019

Это duplicated

df[~(df.duplicated(['Date','Name','Hours']) & df.Hours.eq(24))]
Out[53]: 
         Date        Name Task  Hours
0  2019-09-26   JohnSmith    A     24
1  2019-09-26   BrucePitt    A     24
2  2019-09-27   JohnSmith    A     12
3  2019-09-27   JohnSmith    B     12
4  2019-09-28  EmmaGarcia    A     24
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...