Мне нужно удалить дубликаты из моего фрейма данных, где соответствующие значения в столбцах A и C совпадают, и где соответствующие значения в столбцах B и C совпадают. Моя проблема заключается в том, что в столбце B есть нулевые значения, а некоторые «дубликаты» не совпадают. Столбец B содержит имена, которые для некоторых строк содержат только последнюю и первую, а для других строк — последнюю, первую, середину и степени. Любая строка с совпадающими фамилией и именем считается дубликатом.
Начальный фрейм данных:
Код: Выделить всё
d = {'A': [123498, 123498, 234875, 457898, 'SMITHJ', 'DOEJ',],
'B': ['SIMON, PAUL JD', None, 'DOE, JANE MARY PHD', 'MERCURY, FREDRICK MS', None, 'DOE, JANE'],
'C': ['red', 'red', 'green', 'red', 'blue', 'green']}
df = pd.DataFrame(data=d)
df
A B C
0 123498 SIMON, PAUL JD red
1 123498 None red
2 234875 DOE, JANE MARY PHD green
3 457898 MERCURY, FREDRICK MS red
4 SMITHJ None blue
5 DOEJ DOE, JANE green
Код: Выделить всё
A B C
0 123498 SIMON, PAUL JD red
3 457898 MERCURY, FREDRICK MS red
4 SMITHJ None blue
5 DOEJ DOE, JANE green
Код: Выделить всё
df.drop_duplicate(['A', 'C'])
Also, it doesn't matter which of the duplicate rows that I keep, so rows at index 0 and 5 could've been removed instead of the rows at index 1 and 2 and that would be acceptable.
Thank you!
Источник: https://stackoverflow.com/questions/781 ... xact-match