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.