Автор оригинала: Pankaj Kumar.
Pandas Drop_Duxicates () Функциональный синтаксис
Функция pandas drop_duplates () удаляет дубликаты строки из dataframe. Его синтаксис:
drop_duplicates(self, subset=None, keep="first", inplace=False)
- подмножество : метка колонна или последовательность меток для рассмотрения для идентификации дубликатов строк. По умолчанию все столбцы используются для поиска дубликатовных строк.
- держать : Разрешенные значения {«первые», «последний», ложь}, по умолчанию «First». Если «первые», дублирующиеся строки, кроме первого удалены. Если «последний», дубликаты строки, за исключением последнего, удалено. Если false, все дубликаты строки удаляются.
- в помещении Если true ИСТИНА, источник DataFrame изменен, и ни один не возвращается. По умолчанию источник DataFrame остается неизменным, и возвращается новый экземпляр DataFrame.
Pandas Drop Duplicate Rows Примеры
Давайте посмотрим на некоторые примеры сброса дубликатовных строк из объекта DataFrame.
1. Снимите дубликаты строки, сохраняя первую
Это поведение по умолчанию, когда аргументы не передаются.
import pandas as pd d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]} source_df = pd.DataFrame(d1) print('Source DataFrame:\n', source_df) # keep first duplicate row result_df = source_df.drop_duplicates() print('Result DataFrame:\n', result_df)
Выход:
Source DataFrame: A B C 0 1 2 3 1 1 2 3 2 1 2 4 3 2 3 5 Result DataFrame: A B C 0 1 2 3 2 1 2 4 3 2 3 5
Строки источника DataFrame 0 и 1 являются дубликатами. Первое вхождение сохраняется, а остальные дубликаты удаляются.
2. Оставьте дубликаты и сохраняйте последнюю строку
result_df = source_df.drop_duplicates(keep='last') print('Result DataFrame:\n', result_df)
Выход:
Result DataFrame: A B C 1 1 2 3 2 1 2 4 3 2 3 5
Индекс «0» удален, и последняя дубликата строки «1» хранится в выходе.
3. Удалить все дубликаты строки из DataFrame
result_df = source_df.drop_duplicates(keep=False) print('Result DataFrame:\n', result_df)
Выход:
Result DataFrame: A B C 2 1 2 4 3 2 3 5
Обе дубликаты строки «0» и «1» сброшены из результата DataFrame.
4. Определите дублирующиеся строки на основе определенных столбцов
import pandas as pd d1 = {'A': [1, 1, 1, 2], 'B': [2, 2, 2, 3], 'C': [3, 3, 4, 5]} source_df = pd.DataFrame(d1) print('Source DataFrame:\n', source_df) result_df = source_df.drop_duplicates(subset=['A', 'B']) print('Result DataFrame:\n', result_df)
Выход:
Source DataFrame: A B C 0 1 2 3 1 1 2 3 2 1 2 4 3 2 3 5 Result DataFrame: A B C 0 1 2 3 3 2 3 5
Колонны «A» и «B» используются для выявления дубликатовных строк. Следовательно, строки 0, 1 и 2 являются дубликатами. Таким образом, строки 1 и 2 удаляются с вывода.
5. Удалите дубликаты строки на месте
source_df.drop_duplicates(inplace=True) print(source_df)
Выход:
A B C 0 1 2 3 2 1 2 4 3 2 3 5
Рекомендации
- Учебник модуля Python Pandas
- Pandas DataFrame Drop_Duxates () API DOC