Python

Como Aplicar Funções Personalizadas no Pandas

Escrito por Erick Faria · 2 min. >
Funções Personalizadas no Pandas

Neste post, vamos explorar como aplicar funções personalizadas no Pandas, uma biblioteca Python amplamente utilizada para análise de dados. Usar funções personalizadas permite realizar transformações complexas e específicas em DataFrames e Series. Vamos criar um DataFrame de exemplo e abordar várias técnicas para aplicar funções personalizadas utilizando os métodos apply(), map(), e applymap() do Pandas.

Por que Aplicar Funções Personalizadas no Pandas?

Aplicar funções personalizadas é essencial para manipular dados de maneira flexível e eficiente. Essas funções permitem realizar operações específicas que não são cobertas pelos métodos padrão do Pandas, oferecendo maior controle sobre a transformação dos dados.

Trabalhando com Dados no Pandas

Criando um DataFrame de Exemplo

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

# Funções Personalizadas no Pandas
import pandas as pd

data = {
    'Nome': ['João', 'Ana', 'Carlos', 'Marta'],
    'Idade': [23, 45, 36, 41],
    'Salário': [5000, 7000, 8000, 6200],
    'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Salvador']
}

df = pd.DataFrame(data)

Usando o Método apply()

Aplicando Funções a Colunas

O método apply() permite aplicar uma função ao longo de um eixo do DataFrame (colunas ou linhas). Por exemplo, para calcular o dobro dos salários:

# Funções Personalizadas no Pandas
df['Salário_Dobrado'] = df['Salário'].apply(lambda x: x * 2)

Aplicando Funções a Linhas

Também podemos aplicar funções a cada linha do DataFrame:

# Funções Personalizadas no Pandas
df['Nome_Completo'] = df.apply(lambda row: f"{row['Nome']} de {row['Cidade']}", axis=1)

Usando o Método map()

O método map() é utilizado principalmente em Series para substituir valores com base em uma função ou mapeamento. Por exemplo, para converter os nomes das cidades para minúsculas:

# Funções Personalizadas no Pandas
df['Cidade'] = df['Cidade'].map(lambda x: x.lower())

Usando o Método applymap()

O método applymap() aplica uma função a cada elemento de um DataFrame. Por exemplo, para adicionar um símbolo de moeda ao salário:

df[['Salário']] = df[['Salário']].applymap(lambda x: f"R${x}")

Funções Personalizadas em Dados Categóricos

Podemos usar funções personalizadas para transformar dados categóricos. Por exemplo, criar uma função para padronizar os nomes das cidades:

def padronizar_cidade(cidade):
    return cidade.title()

df['Cidade'] = df['Cidade'].apply(padronizar_cidade)

Operações Complexas com apply()

Usando Funções do NumPy

Podemos combinar apply() com funções do NumPy para operações complexas:

import numpy as np

df['Log_Salário'] = df['Salário'].apply(np.log)

Filtrando Dados com apply()

Podemos usar apply() para criar filtros complexos. Por exemplo, filtrar pessoas com idade acima de 30 e salário acima de 6000:

df_filtered = df[df.apply(lambda row: row['Idade'] > 30 and row['Salário'] > 6000, axis=1)]

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 aplicar funções personalizadas 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: Guia completo para Iniciantes, 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