Pandas Tutorials

Extraindo e Ordenando Valores Únicos em DataFrames Pandas com Eficiência

Spread the love

Pandas é uma poderosa biblioteca Python para manipulação e análise de dados. Uma tarefa comum envolve extrair valores únicos de uma coluna de um DataFrame e, em seguida, ordená-los. Este artigo explora dois métodos eficientes para alcançar isso.

Sumário

Extraindo Valores Únicos com o Método unique()

O método unique() fornece uma maneira concisa de obter valores únicos de uma Pandas Series (uma única coluna). Ele retorna um array NumPy contendo apenas os elementos únicos, preservando sua ordem 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)  # Saída: ['A' 'B' 'C' 'D']

Este código cria um DataFrame de exemplo e, em seguida, usa unique() na coluna ‘col1’. A saída é um array NumPy mostrando os valores únicos na ordem de sua primeira aparição.

Extraindo Valores Únicos com o Método drop_duplicates()

O método drop_duplicates() oferece mais flexibilidade, particularmente quando se trata de múltiplas colunas. Embora seja usado principalmente para remover linhas duplicadas, ele pode extrair eficientemente valores únicos de uma única coluna.


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)  # Saída: ['A' 'B' 'C' 'D']

Este exemplo aplica diretamente drop_duplicates() à Series ‘col1’. O atributo .values converte o resultado em um array NumPy. A ordem dos valores únicos espelha sua primeira ocorrência no DataFrame.

Ordenando Valores Únicos

Ambos os métodos acima retornam valores únicos, mas não necessariamente em ordem classificada. Para classificar, utilize a função sort() do NumPy ou o método sort_values() do 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() e sort()
unique_values = np.sort(df['col1'].unique())
print(unique_values)  # Saída: ['A' 'B' 'C' 'D']

# Usando drop_duplicates() e sort_values()
unique_values = df['col1'].drop_duplicates().sort_values().values
print(unique_values)  # Saída: ['A' 'B' 'C' 'D']

Isto mostra a classificação usando ambas as abordagens. np.sort() funciona no array NumPy de unique(), enquanto sort_values() é usado na Pandas Series de drop_duplicates(). Ambos produzem um array ordenado. Para ordem decrescente com sort_values(), use ascending=False.

Em resumo, tanto unique() quanto drop_duplicates() extraem valores únicos eficientemente. A escolha ideal depende de suas necessidades específicas e se você está trabalhando com uma ou várias colunas. Lembre-se de classificar os resultados usando o método apropriado para a ordem desejada.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *