Soltar duplicados en las columnas de Pandas DataFrame que no funcionan

No se pueden eliminar duplicados de Pandas DataFrame

En esta guía, aprenderemos a manejar el caso en el que, después de invocar el método drop_duplicates DataFrame y eliminar registros no únicos, su DataFrame todavía muestra duplicados.

Paso 1: Prepare su marco de datos de pandas

En primer lugar, debe adquirir los datos que filtrará para ocurrencias únicas. Para este ejemplo simple, usaremos algunos datos de recursos humanos aleatorios.

import pandas as pd month = ['September', 'November', 'July', 'December', 'September'] language = ['Javascript', 'Java', 'R', 'Java', 'Javascript'] salary = [185.0, 138.0, 168.0, 118.0, 130.0] hr_campaign = dict(month = month, language = language, salary = salary) hrdf = pd.DataFrame(data=hr_campaign) hrdf.head()
mesidiomasalario0

1

2

3

4

Septiembre JavaScript 185.0
Noviembre Java 138.0
Julio R 168.0
Diciembre Java 118.0
Septiembre JavaScript 130.0

Paso 2: identificar columnas para buscar duplicados

Nos centraremos en eliminar registros duplicados basados ​​en dos columnas, en nuestro caso, las columnas de mes e idioma. Definiremos una lista de columnas de DataFrame para determinar los registros duplicados

cols = ['month', 'language']]

Paso 3: Soltar duplicados en las columnas seleccionadas

Nuestro siguiente paso es eliminar los duplicados. Lo haremos en base al subconjunto DataFrame que definimos en el paso anterior:

hrdf.drop_duplicates(subset =  cols)

Se eliminará el último registro de nuestro DataFrame:

mesidiomasalario0

1

2

3

Septiembre JavaScript 185.0
Noviembre Java 138.0
Julio R 168.0
Diciembre Java 118.0

Nota: si desea eliminar duplicados en todas las columnas ignorando el índice, simplemente omita el parámetro del subconjunto:

hrdf.drop_duplicates()

Paso 4: persista sus resultados en su DataFrame

Nos gustaría persistir los cambios en nuestro DataFrame. Para ello podemos utilizar uno de los siguientes:

Usando el parámetro inplace=True

hrdf.drop_duplicates(subset =  cols, inplace=True)

Reasignar al DataFrame original

hrdf = hrdf.drop_duplicates(subset =  cols)

Cree un nuevo DataFrame que consta de registros únicos

hrdf_2 = hrdf.drop_duplicates(subset =  cols)