Как удалить дубликаты строк по условию?
Есть большой df с разными колонками. Нужно найти дубликаты строк. Поиск должен идти только по определенным колонкам и удалить только те, где в колонке type = 0.
Каким образом можно объединить drop_duplicates и условие на type?
Как пример:
id name type date
1 anna 1 2021-01-01
1 anna 0 2005-17-11
1 anna 1 2099-01-05
Из такого примера нужно удалить только вторую строчку.
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь комбинацией методов DataFrame.duplicated() и DataFrame.query():
mask = df.duplicated(subset=["id", "name"]) & df.query("type == 0")
res = df.loc[~mask]
Автор решения: SergFSM
→ Ссылка
вот еще рабочий вариант:
del_dupl = df[~((df.duplicated(['id','name']))&(df.type==0))]