Pandas: как удалить дубликаты в нескольких столбцах
Вы можете использовать следующие методы для удаления повторяющихся строк в нескольких столбцах в DataFrame pandas:
Способ 1. Удаление дубликатов во всех столбцах.
df. drop_duplicates ()
Способ 2. Удаление дубликатов в определенных столбцах
df. drop_duplicates ([' column1 ',' column3 '])
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd #createDataFrame df = pd. DataFrame ({' region ': ['East', 'East', 'East', 'West', 'West', 'West'], ' store ': [1, 1, 2, 1, 2, 2], ' sales ': [5, 5, 7, 9, 12, 8]}) #view DataFrame print (df) region store sales 0 East 1 5 1 East 1 5 2 East 2 7 3 West 1 9 4 West 2 12 5 West 2 8
Пример 1. Удаление дубликатов во всех столбцах
Следующий код показывает, как удалить строки с повторяющимися значениями во всех столбцах:
#drop rows that have duplicate values across all columns
df. drop_duplicates ()
region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8
Строка в позиции индекса 1 имела те же значения во всех столбцах, что и строка в позиции индекса 0, поэтому она была удалена из DataFrame.
По умолчанию панды сохраняют первую строку как дубликат. Однако вы можете использовать аргумент Keep , чтобы указать сохранение последней повторяющейся строки:
#drop rows that have duplicate values across all columns (keep last duplicate)
df. drop_duplicates (keep=' last ')
region store sales
1 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8
Пример 2. Удаление дубликатов в определенных столбцах
Вы можете использовать следующий код для удаления строк с повторяющимися значениями только в регионе и сохранения столбцов:
#drop rows that have duplicate values across region and store columns
df. drop_duplicates ([' region ',' store '])
region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
Всего из DataFrame были удалены две строки, поскольку они содержали повторяющиеся значения в столбцах «Регион» и «Магазин» .
Примечание . Полную документацию по функции drop_duplications() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как найти дубликаты в пандах
Как удалить повторяющиеся столбцы в Pandas
Как удалить первую строку в Pandas DataFrame