Como Realizar Operações Aritméticas no Pandas

julho 08, 2024

Neste post, vamos explorar como realizar operações aritméticas no Pandas, uma biblioteca Python amplamente utilizada para análise de dados. Executar operações aritméticas em DataFrames é uma tarefa comum e essencial para muitas análises de dados. Vamos criar um DataFrame de exemplo e abordar várias técnicas para realizar operações aritméticas utilizando métodos do Pandas.

O que são Operações Aritméticas?

Operações aritméticas são cálculos matemáticos básicos que envolvem adição, subtração, multiplicação e divisão. No contexto de análise de dados, essas operações podem ser realizadas em colunas inteiras de um DataFrame para transformar ou agregar dados de maneira útil. O Pandas facilita a execução dessas operações com uma sintaxe intuitiva e eficiente.

Realizando Operações Aritméticas no Pandas

Criando um DataFrame com Dados Numéricos

Vamos começar criando um DataFrame simples que contém dados numéricos:

# Operações Aritméticas no Pandasimport pandas as pd

data = {
    'A': [10, 20, 30, 40],
    'B': [1, 2, 3, 4],
    'C': [5, 6, 7, 8]
}

df = pd.DataFrame(data)

Adição de Colunas

Podemos somar colunas diretamente no Pandas:

# Operações Aritméticas no Pandas
df['A+B'] = df['A'] + df['B']

Subtração de Colunas

Para subtrair colunas:

# Operações Aritméticas no Pandas
df['A-B'] = df['A'] - df['B']

Multiplicação de Colunas

Para multiplicar colunas:

# Operações Aritméticas no Pandas
df['A*B'] = df['A'] * df['B']

Divisão de Colunas

Para dividir colunas:

# Operações Aritméticas no Pandas
df['A/B'] = df['A'] / df['B']

Operações com Constantes

Também podemos realizar operações aritméticas entre colunas e constantes:

df['A+10'] = df['A'] + 10
df['B*2'] = df['B'] * 2

Operações Aritméticas com Funções do Pandas

Aplicando Funções NumPy

O Pandas integra-se bem com o NumPy, permitindo aplicar funções aritméticas mais complexas:

import numpy as np

df['sqrt_A'] = np.sqrt(df['A'])
df['log_B'] = np.log(df['B'])

Usando o Método apply()

O método apply() permite aplicar funções personalizadas a colunas ou linhas de um DataFrame:

df['A^2'] = df['A'].apply(lambda x: x**2)

Operações em Múltiplas Colunas

Podemos realizar operações aritméticas em múltiplas colunas simultaneamente:

df['Sum'] = df[['A', 'B', 'C']].sum(axis=1)
df['Mean'] = df[['A', 'B', 'C']].mean(axis=1)

Operações Aritméticas com Séries Temporais

Se estivermos trabalhando com dados temporais, podemos realizar operações aritméticas entre colunas de diferentes DataFrames, alinhando pelos índices de tempo:

data1 = {'Data': pd.date_range(start='1/1/2023', periods=4), 'Valor1': [1, 2, 3, 4]}
data2 = {'Data': pd.date_range(start='1/1/2023', periods=4), 'Valor2': [10, 20, 30, 40]}

df1 = pd.DataFrame(data1).set_index('Data')
df2 = pd.DataFrame(data2).set_index('Data')

df_combined = df1 + df2

Operações Aritméticas Condicionais

Uso de where e mask

O Pandas oferece funções como where e mask para realizar operações aritméticas condicionais. A função where aplica uma condição e mantém os valores que atendem à condição, substituindo os valores que não atendem por outro valor especificado.

  • Usando where para aplicar uma condição:
df['A_cond'] = df['A'].where(df['A'] > 20, other=0)

Isso substitui os valores na coluna 'A' que são menores ou iguais a 20 por 0.

A função mask é o inverso de where, ou seja, substitui os valores que atendem à condição por outro valor especificado.

  • Usando mask para aplicar uma condição:
df['B_cond'] = df['B'].mask(df['B'] < 3, other=100)

Isso substitui os valores na coluna 'B' que são menores que 3 por 100.

Uso de np.where

O NumPy também oferece a função np.where, que pode ser utilizada para operações condicionais:

df['C_cond'] = np.where(df['C'] % 2 == 0, 'Par', 'Ímpar')

Isso verifica se os valores na coluna 'C' são pares ou ímpares e substitui por 'Par' ou 'Ímpar' respectivamente.

Operações Condicionais com Múltiplas Condições

Podemos aplicar múltiplas condições utilizando operadores lógicos:

df['multi_cond'] = np.where((df['A'] > 20) & (df['B'] < 3), 'Sim', 'Não')

Isso retorna 'Sim' para linhas onde 'A' é maior que 20 e 'B' é menor que 3, e 'Não' caso contrário.

Para mais informações sobre como utilizar o Pandas para análise de dados, confira outros conteúdos no meu blog:

Considerações Finais

Espero que este guia tenha sido útil para aprender como realizar operações aritméticas no Pandas. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.

Para aprimorar suas habilidades com o Pandas e se tornar mais eficiente na manipulação de dados, é importante também fortalecer sua compreensão em Python. Recomendamos o livro "Fundamentos em Python: Para Iniciantes em Programação e Computação", disponível na Amazon, que oferece uma introdução abrangente ao Python.

Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de manipular dados com o Pandas, e fique atento para mais guias e tutoriais que compartilharemos.