Удалить строки в зависимости от условий в двух или более столбцах - PullRequest
0 голосов
/ 13 марта 2020

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

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

          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) И то же имя в строке.

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

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

Спасибо за помощь, сэр и мадам.

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

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

df.drop_duplicates(subset = ['ID', 'Name'], inplace = True) 
0 голосов
/ 13 марта 2020

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

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

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

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

...