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

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

3 días ago

Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…

5 días ago

Curiosidad: Por qué la criptografía habla siempre de Alice y Bob

Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…

1 semana ago

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…

2 semanas ago

Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper

Cualquiera que programe usa la palabra bug a diario para referirse a un fallo en…

2 semanas ago

BG/BB: el modelo de CLV para compras en períodos discretos

Los dos artículos anteriores de la serie cubrieron BG/NBD, el modelo para negocios donde el…

3 semanas ago

This website uses cookies.