Python

Como Realizar Operações Aritméticas no Pandas

Escrito por Erick Faria · 3 min. >
Operações Aritméticas no Pandas

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.

Escrito por Erick Faria
Engenheiro de Dados com Ph.D. em Geografia e experiência em análise espacial e geoprocessamento. Expertise em processamento de grandes volumes de dados geoespaciais, imagens de satélite e dados de mercado, utilizando ferramentas como Spark, Databricks e Google Earth Engine. Experiência em projetos de mercado de carbono, modelos preditivos para investimentos agrícolas e liderança de projetos de dados em saúde pública. Habilidades em Python, R, SQL e diversas ferramentas de engenharia de dados. Profile