Как найти дубликаты в Pandas DataFrame(с примерами)


Вы можете использовать функцию Duplicated () для поиска повторяющихся значений в кадре данных pandas.

Эта функция использует следующий базовый синтаксис:

#find duplicate rows across all columns
duplicateRows = df[df.duplicated ()]

#find duplicate rows across specific columns
duplicateRows = df[df.duplicated(['col1', 'col2'])]

В следующих примерах показано, как использовать эту функцию на практике со следующими пандами DataFrame:

import pandas as pd

#create DataFrame
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 A 10 5
1 A 10 5
2 A 12 7
3 A 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 A 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 A 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 A 10 5
3 A 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 A 10 5
2 A 12 7
3 A 12 9
5 B 17 9
6 B 20 6
7 B 20 6

Всего имеется шесть строк, в которых значения в столбце «команда» являются точными копиями предыдущих строк.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как удалить повторяющиеся строки в Pandas
Как удалить повторяющиеся столбцы в Pandas
Как выбрать столбцы по индексу в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.