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.