Python

Truco Python: eliminar los valores duplicados de una lista en Python

Un problema con el que nos podemos encontrar de forma más es la identificación de valores únicos en una lista. Ya que la existencia de valores duplicados no es se interés para el análisis que se desea realizar. Por eso, saber como eliminar los valores duplicados en una lista es un truco que debemos tener en nuestro arsenal. Otro truco que también puede ser de interés es contar el número de ocurrencias de cada valor en una lista, lo que también se comentará en esta entrada.

Eliminar los valores duplicados de una lista con for

Supongamos que tenemos una lista con diferentes números. Para obtener una nueva lista sin valores duplicados solamente tenemos que crear una nueva lista vacía recorrer la lista inicial y añadiendo los valores a la nueva lista si el valor no se encuentra en esta. Lo que se puede resolver con el siguiente código:

data = [1,3,2,4,7,3,2,2,1,4]

result = []
for item in data:
    if item not in result:
        result.append(item)
        
result
[1, 3, 2, 4, 7]

En donde se puede apreciar que la lista result contiene los valores de la lista inicial (data) sin valores duplicados. Para lo que solamente se ha utilizado código básico de Python.

Eliminar los valores duplicados de una lista con set

Una alternativa a la construcción de un bucle para eliminar los valores duplicados de una lista en Python es la instrucción set. Lo que genera una colección desordenada de objetos diferentes.

set(data)
{1, 2, 3, 4, 7}

Si lo que necesitamos es una lista para trabajar con ella solamente necesitamos convertirla con list.

list(set(data))
[1, 2, 3, 4, 7]

La principal diferencia respecto al caso anterior es que el resultado no respeta el orden de aparición en la lista original, sino que los valore se ordenarán según el valor. Por lo que este método puede no ser adecuado cuando es necesario conservar el orden de aparición de valores.

Uso de la librería Pandas

En la librería Pandas existe un método con el que obtener los valores únicos de un lista de valores. Un método que se llama unique.

import pandas as pd

pd.unique(data)

Contar el número de ocurrencias de cada valor

Finalmente pude que sea necesario contar el número de ocurrencias de cada uno de los registros. En este caso una solución puede ser crear un diccionario vacío y usar los valores como claves, sumando uno cada ve que se encuentra un valor duplicado. Proceso que se muestra en el siguiente código.

data = [(1,3),(7,3),(2,2),(2,4),(7,3),(2,2),(1,4),(7,3)]

result = {}
for item in data:
    if item not in result.keys():
        result[item] = 1
    else:
        result[item] += 1

result
{(1, 3): 1, (7, 3): 3, (2, 2): 2, (2, 4): 1, (1, 4): 1}

En donde las claves son los diferentes valores y los valores el número de ocurrencias. Para obtener un listado con los valores diferentes solamente hay que utilizar la propiedad que tiene todos los diccionarios keys().

list(result.keys())
[(1, 3), (7, 3), (2, 2), (2, 4), (1, 4)]

Conclusiones

En la entrada de hoy hemos visto un truco para Python con el que resolver un problema bastante habitual: eliminar los valores duplicados de una lista.

Imagen de Theodor Moise en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: PandasTruco

Recent Posts

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

2 días ago

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

7 días ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

1 semana ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

2 semanas ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

2 semanas ago

Analytics Lane lanza la versión 1.4 del laboratorio con nuevas herramientas de conversión y modelos avanzados de CLV

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…

3 semanas ago

This website uses cookies.