Отбрасывать строки в зависимости от условий в два или более столбца
Я новичок в программировании, так что простите меня за незнание.
У меня есть следующий фрейм данных:
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]), это не ясно из вопроса.