Отбрасывать строки в зависимости от условий в два или более столбца

Я новичок в программировании, так что простите меня за незнание.

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

          ID      Name    
0       AJ-6      Mark    
1       AJ-6      Mark     
2    AJ-6-FR    Judith    
3    AJ-6-FR    Judith  
4    AJ-6-FR Christian    
..       ...       ...   
299   TV-552     Marie   
300   TV-552      Ruth     
309  ZS-V-21      John     
310  ZS-V-21      John     
311  ZS-V-21      John    

Я намерен удалить те строки, в которых повторяется идентификатор (например, строки 0–1 или 309–311), И в строке указано то же имя.

Я пробовал много вещей, таких как использование iterrows и условий со смещенными столбцами, но я боюсь, что невозможно отбросить несколько строк во время итерации.

Я просто показываю два столбца, в которых можно найти условия, но их может быть и больше (например, если столбец ['age'] >= 20: отбрасывать строки).

Спасибо за вашу помощь, господа.

2 ответа

Вы можете попробовать это (если df это ваш DataFrame):

df.drop_duplicates(subset = ['ID', 'Name'], inplace = True) 

Ты можешь попробовать

df = df.loc[(df['ID']!=df['shiftdown'])&(df['ID']!=df['shiftup'])]

Он проверяет и сохраняет строки только в том случае, если значение идентификатора отличается от shiftdown и shiftup.

Если вместо этого вы просто хотите удалить строки с одинаковыми значениями на основе определенного столбца, вы можете использовать df.drop_values ​​(by=[col_name]), это не ясно из вопроса.

Другие вопросы по тегам