Pandas Tutorials

Extracción y Ordenación Eficientes de Valores Únicos en DataFrames de Pandas

Spread the love

Pandas es una poderosa biblioteca de Python para la manipulación y el análisis de datos. Una tarea común implica extraer valores únicos de una columna de un DataFrame y luego ordenarlos. Este artículo explora dos métodos eficientes para lograr esto.

Tabla de Contenido

Extrayendo Valores Únicos con el método unique()

El método unique() proporciona una forma concisa de obtener valores únicos de una Serie Pandas (una sola columna). Devuelve una matriz NumPy que contiene solo los elementos únicos, preservando su orden original.


import pandas as pd

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

unique_values = df['col1'].unique()
print(unique_values)  # Salida: ['A' 'B' 'C' 'D']

Este código crea un DataFrame de ejemplo y luego usa unique() en la columna ‘col1’. La salida es una matriz NumPy que muestra los valores únicos en el orden de su primera aparición.

Extrayendo Valores Únicos con el método drop_duplicates()

El método drop_duplicates() ofrece más flexibilidad, particularmente cuando se trata de varias columnas. Si bien se utiliza principalmente para eliminar filas duplicadas, puede extraer eficientemente valores únicos de una sola columna.


import pandas as pd

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

unique_values = df['col1'].drop_duplicates().values
print(unique_values)  # Salida: ['A' 'B' 'C' 'D']

Este ejemplo aplica directamente drop_duplicates() a la Serie ‘col1’. El atributo .values convierte el resultado en una matriz NumPy. El orden de los valores únicos refleja su primera aparición en el DataFrame.

Ordenando Valores Únicos

Ambos métodos anteriores devuelven valores únicos, pero no necesariamente en orden. Para ordenar, utilice la función sort() de NumPy o el método sort_values() de Pandas.


import pandas as pd
import numpy as np

data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
        'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)

# Usando unique() y sort()
unique_values = np.sort(df['col1'].unique())
print(unique_values)  # Salida: ['A' 'B' 'C' 'D']

# Usando drop_duplicates() y sort_values()
unique_values = df['col1'].drop_duplicates().sort_values().values
print(unique_values)  # Salida: ['A' 'B' 'C' 'D']

Esto muestra la ordenación utilizando ambos enfoques. np.sort() funciona en la matriz NumPy de unique(), mientras que sort_values() se utiliza en la Serie Pandas de drop_duplicates(). Ambos producen una matriz ordenada. Para el orden descendente con sort_values(), use ascending=False.

En resumen, tanto unique() como drop_duplicates() extraen valores únicos de forma eficiente. La mejor opción depende de sus necesidades específicas y de si está trabajando con una o varias columnas. Recuerde ordenar los resultados utilizando el método apropiado para el orden deseado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *