DataFrame.duplicated() / Series.duplicated()

Метод duplicated() возвращает булеву маску, указывающую, какие строки или элементы являются повторами уже встречавшихся. Хорошо сочетается с DataFrame.drop_duplicates() / Series.drop_duplicates().

Сигнатура

DataFrame.duplicated(subset=None, keep="first")
Series.duplicated(keep="first")

Параметры

  • subset — список столбцов для проверки (только DataFrame).

  • keep — "first" (default, помечать повторы кроме первого), "last", False (помечать все повторы).

Возвращаемое значение

Series булевых значений.

Примеры

Пример 1. Series

import pandas as pd

s = pd.Series([1, 2, 2, 3, 1])
print(s.duplicated())
0    False
1    False
2     True
3    False
4     True
dtype: bool

Пример 2. Поиск дубликатов в логе датчика

import pandas as pd

df = pd.DataFrame({
    "time": ["10:00", "10:01", "10:01", "10:02"],
    "temp": [22.1, 22.5, 22.5, 22.8],
})
print(df.duplicated())
0    False
1    False
2     True
3    False
dtype: bool

Пример 3. keep=False (все дубли)

import pandas as pd

s = pd.Series([1, 2, 2, 3, 1])
print(s.duplicated(keep=False))
0     True
1     True
2     True
3    False
4     True
dtype: bool

Пример 4. По subset столбцов

import pandas as pd

df = pd.DataFrame({
    "id":  [1, 2, 1, 3],
    "val": [10, 20, 30, 40],
})
print(df.duplicated(subset="id"))
0    False
1    False
2     True
3    False
dtype: bool

Пример 5. Подсчёт дубликатов

import pandas as pd

s = pd.Series(["a", "b", "a", "c", "b", "a"])
print(s.duplicated().sum())
3

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.