Función Pandas DataFrame DataFrame.drop_duplicates()

Suraj Joshi 30 enero 2023
  1. La sintaxis de pandas.DataFrame.drop_duplicates():
  2. Códigos de ejemplo: Eliminar filas duplicadas usando el método Pandas DataFrame.set_index()
  3. Códigos de ejemplo: Establecer el parámetro subset en Pandas DataFrame.set_index() método
  4. Códigos de ejemplo: Establece el parámetro keep en Pandas DataFrame.set_index() método
  5. Códigos de ejemplo: Establece el parámetro ignore_index en el Método Pandas DataFrame.set_index()
Función Pandas DataFrame DataFrame.drop_duplicates()

La función Python Pandas DataFrame.drop_duplicates() elimina todas las filas duplicadas del DataFrame.

La sintaxis de pandas.DataFrame.drop_duplicates():

DataFrame.drop_duplicates(subset: Union[Hashable, Sequence[Hashable], NoneType]=None,
                          keep: Union[str, bool]='first',
                          inplace: bool=False,
                          ignore_index: bool=False)

Parámetros

subset Etiqueta de columna o secuencia de etiquetas. Columnas a tener en cuenta al identificar los duplicados
keep first, last o False. Suelta todos los duplicados excepto el primero, suelta todos los duplicados excepto el último o suelta todos los duplicados.
inplace Booleana. Si True modifica el llamador DataFrame
ignore_index Booleana. Si True, los índices del DataFrame original son ignorados. El valor por defecto es False, lo que significa que se utilizan los índices.

Retorna

Si inplace es True, un DataFrame eliminando todas las filas duplicadas del DataFrame; de lo contrario, None.

Códigos de ejemplo: Eliminar filas duplicadas usando el método Pandas DataFrame.set_index()

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','BCD' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates() 

print("DataFrame with Unique Rows:")
print(df_unique)

Producción:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD
3  Orange     34      Yes      ABC
DataFrame with Unique Rows:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      BCD

El DataFrame original tiene la primera y la cuarta fila idénticas.

Puedes eliminar todas las filas duplicadas del DataFrame usando el método drop_duplicates().

Códigos de ejemplo: Establecer el parámetro subset en Pandas DataFrame.set_index() método

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

Producción:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ

Este método elimina todas las filas del DataFrame, que no tienen valores únicos de la columna Supplier.

Aquí, las filas 1ra, 3ra y 4ta tienen un valor común de la columna Supplier. Así que las filas 3ª y 4ª se eliminan del DataFrame; como por defecto, la primera fila duplicada no será eliminada.

Códigos de ejemplo: Establece el parámetro keep en Pandas DataFrame.set_index() método

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df_unique=df.drop_duplicates(subset ="Supplier",keep="last") 

print("DataFrame with Unique vales of Supplier Column:")
print(df_unique)

Producción:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
1   Mango     24       No      XYZ
3  Orange     34      Yes      ABC

Este método elimina todas las filas del DataFrame, que no tienen valores únicos de la columna Supplier, manteniendo sólo la última fila duplicada.

Aquí, la primera, tercera y cuarta fila tienen un valor común de la columna Supplier. Así que la 1ª y 3ª fila se eliminan del DataFrame.

Códigos de ejemplo: Establece el parámetro ignore_index en el Método Pandas DataFrame.set_index()

import pandas as pd
fruit_list = [ ('Orange', 34, 'Yes' ,'ABC') ,
             ('Mango', 24, 'No','XYZ' ) ,
             ('banana', 14, 'No','ABC' ) ,
            ('Orange', 34, 'Yes' ,'ABC') ]

df = pd.DataFrame(fruit_list, 
                  columns = ['Name',
                             'Price',
                             'In_Stock',
                             'Supplier'])

print("DataFrame:")
print(df)

df.drop_duplicates(subset ="Supplier",keep="last",inplace=True,ignore_index=True) 

print("DataFrame with Unique vales of Supplier Column:")
print(df)

Producción:

DataFrame:
     Name  Price In_Stock Supplier
0  Orange     34      Yes      ABC
1   Mango     24       No      XYZ
2  banana     14       No      ABC
3  Orange     34      Yes      ABC
DataFrame with Unique vales of Supplier Column:
     Name  Price In_Stock Supplier
0   Mango     24       No      XYZ
1  Orange     34      Yes      ABC

Aquí, como ignore_index se establece en True, los índices del DataFrame original son ignorados, y se establecen nuevos índices para la fila.

Debido a la función inplace=True, el DataFrame original se modifica después de llamar a la función ignore_index().

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame