Encuentre filas duplicadas en un marco de datos usando Pandas
-
Utilice el método
DataFrame.duplicated()
para encontrar filas duplicadas en un marco de datos - Crear un marco de datos con filas duplicadas
- Seleccionar filas duplicadas basadas en todas las columnas
- Conclusión
Los valores duplicados deben identificarse a partir de su conjunto de datos como parte del procedimiento de limpieza. Los datos duplicados consumen espacio de almacenamiento innecesario y, como mínimo, ralentizan los cálculos; sin embargo, en el peor de los casos, los datos duplicados pueden distorsionar los resultados del análisis y comprometer la integridad del conjunto de datos.
Un paquete Python de código abierto llamado Pandas mejora el manejo y almacenamiento de datos estructurados. Además, el marco ofrece asistencia integrada para los procedimientos de limpieza de datos, como encontrar y eliminar filas y columnas duplicadas.
Este artículo describe la búsqueda de duplicados en un marco de datos de Pandas utilizando todas las columnas o un subconjunto de ellas. Para ello utilizaremos el método Dataframe.duplicated()
de Pandas.
Utilice el método DataFrame.duplicated()
para encontrar filas duplicadas en un marco de datos
La biblioteca Pandas para la clase DataFrame
de Python ofrece un método miembro para descubrir filas duplicadas en función de todas las columnas o un subconjunto de esas columnas, como:
DataFrame.duplicated(subset=None, keep="first")
Devuelve una serie de valores booleanos que indican si una fila es única o duplicada.
Parámetros:
subconjunto
: Esto requiere una columna o colección de etiquetas de columna. Ninguno es el valor predeterminado para él. Después de pasar columnas, solo tendrá en cuenta los duplicados.keep
: Regula el tratamiento de los valores duplicados. Solo hay tres valores diferentes, siendoprimero
el valor predeterminado.- Si es “primero”, el primer elemento se trata como único y los valores restantes como duplicados.
- Si es “más reciente”, el elemento final se trata como único y los valores restantes como duplicados.
- Si es
False
, todos los valores idénticos se consideran duplicados. - Devuelve las filas duplicadas indicadas por la serie booleana.
Crear un marco de datos con filas duplicadas
Hagamos un marco de datos básico con una colección de listas y nombremos las columnas Nombre
, Edad
y Ciudad
.
Código de ejemplo:
# Import pandas library
import pandas as pd
# List of Tuples
employees = [
("Joe", 28, "Chicago"),
("John", 32, "Austin"),
("Melvin", 25, "Dallas"),
("John", 32, "Austin"),
("John", 32, "Austin"),
("John", 32, "Houston"),
("Melvin", 40, "Dehradun"),
("Hazel", 32, "Austin"),
]
df = pd.DataFrame(employees, columns=["Name", "Age", "City"])
print(df)
Producción :
Name Age City
0 Joe 28 Chicago
1 John 32 Austin
2 Melvin 25 Dallas
3 John 32 Austin
4 John 32 Austin
5 John 32 Houston
6 Melvin 40 Dehradun
7 Hazel 32 Austin
Seleccionar filas duplicadas basadas en todas las columnas
Llame a Dataframe.duplicate()
sin un parámetro de subconjunto
para ubicar y seleccionar duplicados para todas las filas dependiendo de todas las columnas. Sin embargo, si hay filas duplicadas, solo devolverá una serie booleana con True
en la ubicación de la primera instancia (el valor predeterminado del argumento de retención es primero
).
Luego proporcione esta serie booleana al operador []
de DataFrame para elegir las filas duplicadas.
Código de ejemplo:
# Import pandas library
import pandas as pd
# List of Tuples
employees = [
("Joe", 28, "Chicago"),
("John", 32, "Austin"),
("Melvin", 25, "Dallas"),
("John", 32, "Austin"),
("John", 32, "Austin"),
("John", 32, "Houston"),
("Melvin", 40, "Dehradun"),
("Hazel", 32, "Austin"),
]
df = pd.DataFrame(employees, columns=["Name", "Age", "City"])
duplicate = df[df.duplicated()]
print("Duplicate Rows :")
print(duplicate)
Producción :
Duplicate Rows :
Name Age City
3 John 32 Austin
4 John 32 Austin
Pase retain = "last"
como argumento si desea considerar todos los duplicados excepto el final.
Código de ejemplo:
# Import pandas library
import pandas as pd
# List of Tuples
employees = [
("Joe", 28, "Chicago"),
("John", 32, "Austin"),
("Melvin", 25, "Dallas"),
("John", 32, "Austin"),
("John", 32, "Austin"),
("John", 32, "Houston"),
("Melvin", 40, "Dehradun"),
("Hazel", 32, "Austin"),
]
df = pd.DataFrame(employees, columns=["Name", "Age", "City"])
duplicate = df[df.duplicated(keep="last")]
print("Duplicate Rows :")
print(duplicate)
Producción :
Duplicate Rows :
Name Age City
1 John 32 Austin
3 John 32 Austin
Luego, proporcione la lista de nombres de columna en el subconjunto
como parámetro si solo desea seleccionar filas duplicadas dependiendo de algunas columnas específicas.
Código de ejemplo:
# Import pandas library
import pandas as pd
# List of Tuples
employees = [
("Joe", 28, "Chicago"),
("John", 32, "Austin"),
("Melvin", 25, "Dallas"),
("John", 32, "Austin"),
("John", 32, "Austin"),
("John", 32, "Houston"),
("Melvin", 40, "Dehradun"),
("Hazel", 32, "Austin"),
]
df = pd.DataFrame(employees, columns=["Name", "Age", "City"])
# on 'City' column
duplicate = df[df.duplicated("City")]
print("Duplicate Rows based on City:")
print(duplicate)
Producción :
Duplicate Rows based on City:
Name Age City
3 John 32 Austin
4 John 32 Austin
7 Hazel 32 Austin
Seleccione las filas duplicadas en función de más de un nombre de columna, como Nombre
y Edad
.
Código de ejemplo:
# Import pandas library
import pandas as pd
# List of Tuples
employees = [
("Joe", 28, "Chicago"),
("John", 32, "Austin"),
("Melvin", 25, "Dallas"),
("John", 32, "Austin"),
("John", 32, "Austin"),
("John", 32, "Houston"),
("Melvin", 40, "Dehradun"),
("Hazel", 32, "Austin"),
]
df = pd.DataFrame(employees, columns=["Name", "Age", "City"])
# list of the column names
duplicate = df[df.duplicated(["Name", "Age"])]
print("Duplicate the rows based on Name and Age:")
print(duplicate)
Producción :
Duplicate Rows based on Name and Age:
Name Age City
3 John 32 Austin
4 John 32 Austin
5 John 32 Houston
Conclusión
Para ubicar filas duplicadas en un DataFrame, use el método dataframe.duplicated()
en Pandas. Devuelve una serie de valores booleanos que indican si una fila es única o duplicada.
Esperamos que este artículo lo haya ayudado a encontrar filas duplicadas en un marco de datos usando todas o un subconjunto de las columnas al verificar todos los ejemplos que hemos discutido aquí. Luego, siguiendo los sencillos pasos mencionados anteriormente, puede determinar rápidamente cómo se pueden usar Pandas para encontrar duplicados.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInArtículo relacionado - Pandas DataFrame Row
- Cómo obtener el recuento de filas de un Pandas DataFrame
- Cómo barajar aleatoriamente filas de DataFrame en Pandas
- Cómo filtrar filas de DataFrames en función de los valores de columna en Pandas
- Cómo iterar a través de filas de un DataFrame en Pandas
- Cómo obtener el índice de todas las filas cuya columna particular satisface la condición dada en Pandas