Как найти дубликаты в dataframe pandas (с примерами)
Вы можете использовать функцию Duplied() для поиска повторяющихся значений в DataFrame pandas.
Эта функция использует следующий базовый синтаксис:
#find duplicate rows across all columns duplicateRows = df[df. duplicated ()] #find duplicate rows across specific columns duplicateRows = df[df. duplicated ([' col1 ',' col2 '])]
В следующих примерах показано, как использовать эту функцию на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' points ': [10, 10, 12, 12, 15, 17, 20, 20], ' assists ': [5, 5, 7, 9, 12, 9, 6, 6]}) #view DataFrame print (df) team points assists 0 to 10 5 1 to 10 5 2 to 12 7 3 to 12 9 4 B 15 12 5 B 17 9 6 B 20 6 7 B 20 6
Пример 1. Найдите повторяющиеся строки во всех столбцах.
Следующий код показывает, как найти повторяющиеся строки во всех столбцах DataFrame:
#identify duplicate rows
duplicateRows = df[df. duplicated ()]
#view duplicate rows
duplicateRows
team points assists
1 to 10 5
7 B 20 6
Есть две строки, которые являются точными копиями других строк в DataFrame.
Обратите внимание, что мы также можем использовать аргумент Keep=’last’ для отображения первых повторяющихся строк вместо последних:
#identify duplicate rows
duplicateRows = df[df. duplicated (keep=' last ')]
#view duplicate rows
print (duplicateRows)
team points assists
0 to 10 5
6 B 20 6
Пример 2. Найдите повторяющиеся строки в определенных столбцах.
Следующий код показывает, как найти повторяющиеся строки только в столбцах «команда» и «баллы» DataFrame:
#identify duplicate rows across 'team' and 'points' columns
duplicateRows = df[df. duplicated ([' team ',' points '])]
#view duplicate rows
print (duplicateRows)
team points assists
1 to 10 5
3 to 12 9
7 B 20 6
Есть три строки, где значения в столбцах «команда» и «очки» являются точными копиями предыдущих строк.
Пример 3. Найдите повторяющиеся строки в столбце.
Следующий код показывает, как найти повторяющиеся строки только в столбце «команда» DataFrame:
#identify duplicate rows in 'team' column
duplicateRows = df[df. duplicated ([' team '])]
#view duplicate rows
print (duplicateRows)
team points assists
1 to 10 5
2 to 12 7
3 to 12 9
5 B 17 9
6 B 20 6
7 B 20 6
Всего имеется шесть строк, где значения в столбце «команда» являются точными дубликатами предыдущих строк.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как удалить повторяющиеся строки в Pandas
Как удалить повторяющиеся столбцы в Pandas
Как выбрать столбцы по индексу в Pandas