Pandas é uma poderosa biblioteca Python para manipulação e análise de dados, e calcular somas de valores de coluna é uma tarefa frequentemente utilizada. Este artigo explora vários métodos para somar dados eficientemente em DataFrames Pandas, cobrindo somatório básico, somas cumulativas com agrupamento e somatório condicional.
Sumário:
- Somatório Básico de Colunas de DataFrame Pandas
- Soma Cumulativa com
groupby()
- Somatório Condicional com Base em Outros Valores de Coluna
1. Somatório Básico de Colunas de DataFrame Pandas
A maneira mais simples de somar uma coluna de DataFrame Pandas é usando o método .sum()
. Isso calcula diretamente a soma de todos os valores na coluna especificada. Valores não numéricos são ignorados.
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
# Soma da coluna 'A'
sum_A = df['A'].sum()
print(f"Soma da coluna A: {sum_A}") # Saída: Soma da coluna A: 15
# Soma da coluna 'B'
sum_B = df['B'].sum()
print(f"Soma da coluna B: {sum_B}") # Saída: Soma da coluna B: 40
# Soma de todas as colunas numéricas
sum_all = df.sum()
print(f"Soma de todas as colunas numéricas:n{sum_all}")
2. Soma Cumulativa com groupby()
Calcular somas cumulativas dentro de grupos requer o método groupby()
combinado com .cumsum()
. Isso permite uma agregação eficiente em diferentes categorias.
import pandas as pd
data = {'Grupo': ['X', 'X', 'Y', 'Y', 'Y'],
'Valor': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# Agrupa por 'Grupo' e calcula a soma cumulativa de 'Valor'
cumulative_sum = df.groupby('Grupo')['Valor'].cumsum()
df['Soma Cumulativa'] = cumulative_sum
print(df)
Isso gerará um DataFrame com uma coluna ‘Soma Cumulativa’ mostrando a soma cumulativa para cada grupo.
3. Somatório Condicional com Base em Outros Valores de Coluna
O somatório condicional permite somar valores com base em condições aplicadas a outras colunas. Indexação booleana e o método .sum()
alcançam isso.
import pandas as pd
data = {'Categoria': ['A', 'B', 'A', 'B', 'A'],
'Vendas': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)
# Soma de 'Vendas' onde 'Categoria' é 'A'
sum_A = df[df['Categoria'] == 'A']['Vendas'].sum()
print(f"Soma de Vendas para Categoria A: {sum_A}") # Saída: Soma de Vendas para Categoria A: 600
# Soma de 'Vendas' onde 'Vendas' é maior que 200
sum_greater_200 = df[df['Vendas'] > 200]['Vendas'].sum()
print(f"Soma de Vendas maior que 200: {sum_greater_200}") # Saída: Soma de Vendas maior que 200: 550
Isso demonstra a filtragem do DataFrame antes da soma para agregações condicionais poderosas. Lembre-se de adaptar essas técnicas aos seus dados e requisitos específicos. Pandas fornece muitas ferramentas para análise de dados eficiente.