Data Analysis

Contando Frequências de Valores Eficientemente em DataFrames Pandas

Spread the love

Pandas é uma poderosa biblioteca Python para análise de dados, e uma tarefa frequente envolve determinar a frequência de valores dentro de um DataFrame. Este artigo explora três métodos eficientes para contar frequências de valores: value_counts(), groupby().size(), e groupby().count(). Examinaremos cada método, destacando seus pontos fortes e fracos, e fornecendo exemplos claros.

Sumário

Método Series.value_counts()

O método value_counts() é a maneira mais simples e eficiente de contar a frequência de valores dentro de uma única coluna (Series). Ele retorna uma Series onde o índice representa os valores únicos e os valores representam suas contagens, ordenados em ordem decrescente por padrão. Isso é ideal quando você precisa da frequência de valores individuais em uma coluna específica.


import pandas as pd

data = {'Categoria': ['A', 'A', 'B', 'B', 'A', 'C', 'A']}
df = pd.DataFrame(data)

contagem_categoria = df['Categoria'].value_counts()
print(contagem_categoria)

Saída:


A    4
B    2
C    1
Name: Categoria, dtype: int64

Método df.groupby().size()

O método groupby().size() fornece o tamanho de cada grupo (número de linhas) após agrupar o DataFrame. Ao contrário de groupby().count(), ele não é afetado por valores ausentes em outras colunas; ele simplesmente conta as linhas dentro de cada grupo. Isso é perfeito para obter uma contagem direta das ocorrências do grupo.


import pandas as pd

data = {'Categoria': ['A', 'A', 'B', 'B', 'A', 'C'],
        'Valor': [1, 2, 1, 1, 2, 3]}
df = pd.DataFrame(data)

contagem_categoria = df.groupby('Categoria').size()
print(contagem_categoria)

Saída:


Categoria
A    3
B    2
C    1
dtype: int64

Método df.groupby().count()

O método groupby().count() é versátil, permitindo que você conte frequências em várias colunas. Ele agrupa o DataFrame e depois conta os valores não nulos dentro de cada grupo para *todas* as colunas. Isso significa que dados ausentes afetarão as contagens. Use este método quando precisar de uma contagem em várias colunas, mas esteja ciente do impacto potencial de dados ausentes.


import pandas as pd

data = {'Categoria': ['A', 'A', 'B', 'B', 'A', 'C'],
        'Valor': [1, 2, 1, 1, 2, 3],
        'Valor2': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)

# Contar ocorrências de 'Categoria' em todas as colunas
contagem_categoria = df.groupby('Categoria').count()
print(contagem_categoria)

# Focando em uma única coluna
contagem_categoria_valor = df.groupby('Categoria')['Valor'].count()
print(contagem_categoria_valor)

Saída:


         Valor  Valor2
Categoria                 
A            3       3
B            2       2
C            1       1

Categoria
A    3
B    2
C    1
Name: Valor, dtype: int64

Em resumo, o melhor método depende de suas necessidades específicas. value_counts() é melhor para colunas únicas, groupby().size() para contagens de grupos simples e groupby().count() para cenários mais complexos envolvendo várias colunas, mas requer um tratamento cuidadoso de valores ausentes.

Deixe um comentário

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