Eliminar duplicados en Python: guía para todos los niveles

1. Introducción

Python en el procesamiento de datos, los elementos duplicados en una lista a menudo son un problema. Cuando existen datos duplicados, la velocidad de procesamiento puede disminuir y los resultados del análisis pueden volverse inexactos.
En este artículo, explicaremos cómo eliminar duplicados en listas usando Python. Presentaremos de manera exhaustiva desde métodos fáciles de entender para principiantes hasta técnicas avanzadas.

2. Métodos básicos para eliminar elementos duplicados

Primero, le presentamos un método sencillo usando funciones integradas de Python.

Eliminar duplicados usando set()

En Python, al usar el tipo set, puede eliminar fácilmente los duplicados en una lista.

Ejemplo

original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(original_list))
print(unique_list)  # Ejemplo de salida: [1, 2, 3, 4, 5]

Explicación

set es una estructura de datos tipo conjunto que no permite duplicados. Puede aprovechar esta característica para eliminar los duplicados de una lista.

Puntos a considerar

  • Al usar set(), el orden original de la lista se pierde.
  • Si desea mantener el orden, consulte el método presentado en la siguiente sección.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Método para eliminar duplicados manteniendo el orden

Si deseas eliminar duplicados manteniendo el orden de la lista, los siguientes métodos son útiles.

dict.fromkeys() método usando

Ejemplo

original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(dict.fromkeys(original_list))
print(unique_list)  # Ejemplo de salida: [1, 2, 3, 4, 5]

Explicación

  • dict.fromkeys() crea un diccionario usando cada elemento de la lista especificada como clave.
  • Como las claves del diccionario son únicas, los duplicados se eliminan.
  • A partir de Python 3.7, se conserva el orden de las claves del diccionario.

Método usando comprensión de listas

Ejemplo

original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = []
[unique_list.append(item) for item in original_list if item not in unique_list]

print(unique_list) # ejemplo de salida: [1, 2, 3, 4, 5]

Explicación

  • Usando comprensión de listas, se añaden solo los elementos únicos a una nueva lista.
  • Este método también es eficaz para listas pequeñas.

Precauciones

Este método puede reducir la velocidad de procesamiento cuando la lista se vuelve grande.

4. Eliminación de duplicados en listas bidimensionales

En listas bidimensionales, set() o dict.fromkeys() no se pueden usar directamente. En esta sección, se explica cómo eliminar duplicados en listas bidimensionales.

Usar comprensión de listas

Ejemplo

original_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = []
[unique_list.append(item) for item in original_list if item not in unique_list]
print(unique_list)  # Ejemplo de salida: [1, 2, 3, 4, 5]

Explicación

  • Se usa la comprensión de listas para eliminar listas duplicadas.
  • Incluso si la lista está anidada, este método puede manejarlo.

Precauciones

En datos a gran escala, el rendimiento puede disminuir, por lo que es necesario elegir el método adecuado.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Eliminación de duplicados usando Pandas

La biblioteca Pandas ofrece métodos útiles para eliminar duplicados en un DataFrame.

drop_duplicates() Usar el método

Ejemplo

import pandas as pd

data = {'A': [1, 2, 2, 3], 'B': [4, 5, 5, 6]}
df = pd.DataFrame(data)
df = df.drop_duplicates()
print(df)

Explicación

  • drop_duplicates() elimina duplicados basándose en todo el DataFrame o en columnas específicas.
  • subset Al usar este parámetro, puede basarse en columnas específicas.

6. Detección y conteo de elementos duplicados

En Python, la detección de elementos duplicados y el conteo de su número de apariciones también es muy importante. En esta sección, introduciremos métodos que utilizan collections.Counter y técnicas estándar de Python.

Método usando collections.Counter

Ejemplo

from collections import Counter

original_list = [1, 2, 2, 3, 4, 4, 5, 5, 5]
count = Counter(original_list)
print(count)  # Ejemplo de salida: Counter({5: 3, 2: 2, 4: 2, 1: 1, 3: 1})

Explicación

  • Counter devuelve cada elemento de la lista y su número de ocurrencias en forma de diccionario.
  • Se pueden identificar fácilmente los elementos con mayor número de ocurrencias.

Método para extraer elementos duplicados

Ejemplo

duplicates = [item for item, freq in count.items() if freq > 1]
print(duplicates)  # Ejemplo de salida: [2, 4, 5]

Explicación

  • Usando Counter, se añaden a la lista los elementos cuya cantidad de ocurrencias supera una vez.
  • Con este método, se pueden listar fácilmente los elementos duplicados.

7. Resumen

A continuación se resumen los métodos presentados hasta ahora.

Ventajas y casos de uso de cada método

MétodoVentajaPrecaución
set() usarSimple y rápidoEl orden no se conserva
dict.fromkeys() usarPuede eliminar duplicados manteniendo el ordenEl orden solo está garantizado a partir de Python 3.7
Comprensión de listasFlexible y puede mantener el ordenEl rendimiento disminuye con datos a gran escala
de Pandas drop_duplicates()Ideal para manipular DataFramesRequiere instalación de Pandas
collections.Counter usarObtener fácilmente el recuento de ocurrenciasCuidado con el rendimiento en datos a gran escala

Los métodos para eliminar duplicados en listas con Python varían según el caso de uso y la estructura de datos. Use este artículo como referencia, elija el método adecuado y mejore la eficiencia de su trabajo.

年収訴求