DataFrame.drop_duplicates() / Series.drop_duplicates()

Метод drop_duplicates() удаляет дублирующиеся строки (или элементы) и возвращает уникальный набор. Можно указать подмножество столбцов и стратегию выбора, какие дубликаты сохранять.

Сигнатура

DataFrame.drop_duplicates(subset=None, keep="first",
                          inplace=False, ignore_index=False)
Series.drop_duplicates(keep="first", inplace=False, ignore_index=False)

Параметры

  • subset — список столбцов для сравнения.

  • keep — "first" (default), "last", False (удалить все дубли).

  • inplace — изменить на месте.

  • ignore_index — перенумеровать индекс.

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

Объект того же типа без дубликатов.

Примеры

Пример 1. Series

import pandas as pd

s = pd.Series([1, 2, 2, 3, 1])
print(s.drop_duplicates())
0    1
1    2
3    3
dtype: int64

Пример 2. Удаление дублирующихся логов

В лог Arduino попали повторные записи:

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.drop_duplicates())
    time  temp
0  10:00  22.1
1  10:01  22.5
3  10:02  22.8

Пример 3. По подмножеству столбцов

import pandas as pd

df = pd.DataFrame({
    "id":    [1, 1, 2, 2],
    "value": [10, 11, 20, 20],
})
print(df.drop_duplicates(subset="id"))
   id  value
0   1     10
2   2     20

Пример 4. keep=»last»

import pandas as pd

s = pd.Series(["a", "b", "a", "c", "b"])
print(s.drop_duplicates(keep="last"))
2    a
3    c
4    b
dtype: object

Пример 5. keep=False (все дубли удалить)

import pandas as pd

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

См. также

Примечание

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

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