Как удалить повторяющиеся строки в Pandas DataFrame


Самый простой способ удалить повторяющиеся строки в кадре данных pandas — использовать функцию drop_duplicates() , которая использует следующий синтаксис:

df.drop_duplicates (подмножество = нет, сохранить = «первый», inplace = ложь)

куда:

  • подмножество: какие столбцы следует учитывать для выявления дубликатов. По умолчанию все столбцы.
  • keep: Указывает, какие дубликаты (если они есть) нужно сохранить.
  • first: удалить все повторяющиеся строки, кроме первой.
  • last: удалить все повторяющиеся строки, кроме последней.
  • False : удалить все дубликаты.
  • inplace: указывает, следует ли удалить дубликаты на месте или вернуть копию DataFrame.

В этом руководстве представлено несколько примеров практического использования этой функции в следующем кадре данных:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['a', 'b', 'b', 'c', 'c', 'd'],
 'points': [3, 7, 7, 8, 8, 9],
 'assists': [8, 6, 7, 9, 9, 3]})

#display DataFrame
print(df)

 team points assists
0 a 3 8
1 b 7 6
2 b 7 7
3 c 8 9
4 c 8 9
5 d 9 3

Пример 1. Удаление дубликатов во всех столбцах

В следующем коде показано, как удалить строки с повторяющимися значениями во всех столбцах:

df.drop_duplicates ()

 team points assists
0 a 3 8
1 b 7 6
2 b 7 7
3 c 8 9
5 d 9 3

По умолчанию функция drop_duplicates() удаляет все дубликаты, кроме первого.

Однако мы могли бы использовать аргумент keep=False для полного удаления всех дубликатов:

df.drop_duplicates (keep= False )

 team points assists
0 a 3 8
1 b 7 6
2 b 7 7
5 d 9 3

Пример 2. Удаление дубликатов в определенных столбцах

В следующем коде показано, как удалить строки с повторяющимися значениями только в столбцах с названиями team и points :

df.drop_duplicates (subset=['team', 'points'])

 team points assists
0 a 3 8
1 b 7 6
3 c 8 9
5 d 9 3

Дополнительные ресурсы

Как удалить повторяющиеся столбцы в Pandas
Как сортировать значения в Pandas DataFrame
Как фильтровать кадр данных Pandas по нескольким условиям
Как вставить столбец в фрейм данных Pandas