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()
- Extraindo Valores Únicos com o Método
drop_duplicates()
- Ordenando Valores Únicos
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.