Article image
Carlos Souza
Carlos Souza24/07/2025 18:06
Compartilhe

đŸŒ 5 funçÔes pouco conhecidas do Pandas para agilizar suas anĂĄlises

  • #Python

Introdução

Sabe quando vocĂȘ sente que estĂĄ fazendo as coisas do jeito mais difĂ­cil no Pandas?

Pois é  tem umas funçÔes meio “escondidas” que pouca gente usa, mas que deixam seu cĂłdigo muito mais rĂĄpido e fĂĄcil de entender.

Hoje eu vou te mostrar 5 dessas funçÔes mågicas.

Bora lĂĄ?

1. pd.eval() — Avaliação eficiente de expressĂ”es

Imagina que o Pandas Ă© uma calculadora gigante. O pd.eval() deixa ele fazer contas direto com strings, tipo uma fĂłrmula.

Isso é bom porque ele calcula tudo rapidinho, até em grandes tabelas.

Exemplo:

pd.eval("df['col1'] + df['col2']")

O que estĂĄ acontecendo?

  • Estamos dizendo: “Some os valores da coluna col1 com os valores da coluna col2”.
  • O pd.eval() pega essa fĂłrmula escrita como string (texto entre aspas) e calcula de forma mais rĂĄpida do que se vocĂȘ usasse df['col1'] + df['col2'] direto.

Por que isso Ă© Ăștil?

  • Em datasets grandes, pd.eval() usa menos memĂłria e pode ser atĂ© mais rĂĄpido.
  • Ele funciona bem com contas simples ou expressĂ”es maiores — sem precisar escrever tudo no estilo “colchete-coluna-colchete”.

É mais rápido do que somar coluna por coluna.

2. df.query() — Filtros legíveis e performáticos

Sabe quando vocĂȘ faz um filtro tipo df[df['idade'] > 18]?

Com query() fica muito mais limpo:

df.query("idade > 18")

O que estĂĄ acontecendo?

  • Estamos dizendo ao Pandas: “Me mostre sĂł as linhas onde a idade Ă© maior que 18”.
  • A diferença Ă© que, em vez de usar df[df['idade'] > 18], usamos uma string simples dentro do query().

Por que isso Ă© Ăștil?

  • Fica mais fĂĄcil de ler e escrever.
  • Com filtros maiores (ex: com 3 ou mais condiçÔes), o cĂłdigo com query() continua limpo e claro.

É como se vocĂȘ estivesse falando com o Pandas em portuguĂȘs.

E ainda roda mais rĂĄpido quando o dataset Ă© grande.

3. df.pipe() — Composição de funçÔes para pipelines

Se vocĂȘ gosta de deixar o cĂłdigo organizado em etapas, o pipe() Ă© perfeito.

Ele passa o DataFrame de uma função pra outra, tipo uma esteira de fåbrica.

Exemplo:

df.pipe(limpa_dados).pipe(filtra_clientes).pipe(gera_relatorio)

O que estĂĄ acontecendo?

  • Estamos empilhando funçÔes: o df (nosso DataFrame) passa por limpa_dados(), depois por filtra_clientes(), e por fim por gera_relatorio().

É como se fosse isso:

temp = limpa_dados(df)
temp = filtra_clientes(temp)
resultado = gera_relatorio(temp)

Por que isso Ă© Ăștil?

  • Ajuda a escrever cĂłdigo em etapas claras, como um passo a passo.
  • Isso facilita testes e manutenção — especialmente em pipelines de dados.

Fica fĂĄcil de entender e manter.

4. df.at[] e df.iat[] — Acesso super rápido a valores individuais

Imagina que o Pandas Ă© tipo uma tabela gigante, e vocĂȘ quer pegar ou mudar sĂł um valor, bem especĂ­fico.

Pra isso, o jeito mais rĂĄpido e direto Ă© usar at[] ou iat[] — como se fosse um atalho turbo pra um ponto exato da tabela.

at[]: acessa pelo rĂłtulo (tipo nome da linha e coluna)

df.at[3, 'nome']

O que estĂĄ acontecendo?

  • Acessa o valor da linha 3, coluna 'nome' — usando o nome da coluna.
  • Como se dissesse: “Pega o nome da terceira pessoa da lista”.

iat[]: acessa pela posição (linha 0, coluna 1, por exemplo)

df.iat[3, 1]

O que estĂĄ acontecendo?

  • Pega o valor na posição da linha 3 e coluna 1 (por Ă­ndice, como nas listas Python).
  • Ou seja: linha 3, coluna 1, independente do nome da coluna.

Mas por que nĂŁo usar loc[] ou iloc[]?

Boa pergunta! Olha sĂł:

  • loc[]
  • Acessa valores usando rĂłtulos (ex: df.loc[3, 'nome'])
  • Ideal para acessar linhas e colunas inteiras com nomes.

🔾 Útil, mas mais lento para acessos pontuais.

  • iloc[]
  • Acessa valores usando posiçÔes numĂ©ricas (ex: df.iloc[3, 1])
  • TambĂ©m bom para acessar fatias de dados, mas...

🔾 Ainda mais lento que alternativas para 1 Ășnico valor.

  • at[] e iat[] sĂŁo mais rĂĄpidos porque foram feitos sĂł pra acessar UM valor, enquanto loc[] e iloc[] podem lidar com vĂĄrios valores de uma vez (linhas, colunas, fatias etc.).

Tipo um teletransporte direto pro valor que vocĂȘ quer!

5. df.explode() — Transformar listas em linhas

Tem uma coluna que guarda listas? Tipo gĂȘneros musicais: ['rock', 'metal']?

O explode() transforma isso em vĂĄrias linhas, uma pra cada item da lista.

Assim dĂĄ pra analisar separado, sem fazer gambiarra.

Exemplo:

df.explode("generos")

O que estĂĄ acontecendo?

  • Imagina que vocĂȘ tem uma linha assim:
{"nome": "Filipe", "generos": ["rock", "metal", "prog"]}
  • O explode() transforma isso em 3 linhas:
{"nome": "Filipe", "generos": "rock"}
{"nome": "Filipe", "generos": "metal"}
{"nome": "Filipe", "generos": "prog"}

Por que isso Ă© Ăștil?

  • Isso facilita anĂĄlises separadas por item (como contar quantos escutam “metal”).
  • Evita loops ou cĂłdigos complicados — Ă© sĂł um comando.

Simples e poderoso!

ConclusĂŁo

Usar essas funçÔes é como encontrar atalhos secretos no seu jogo favorito.

VocĂȘ chega no mesmo lugar, mas muito mais rĂĄpido — e com um cĂłdigo bem mais bonito.

NĂŁo precisa decorar tudo agora, salva esse post e volta quando estiver limpando ou analisando dados no Pandas.

Garanto que uma dessas vai te salvar!

Curtiu essas dicas? Ele foi gerado por inteligĂȘncia artificial, mas revisado por alguĂ©m 100% humano

Me segue no GitHub e no LinkedIn pra mais conteĂșdos direto ao ponto sobre Python, AnĂĄlise de Dados e Tech!

Fontes de produção:

  • IlustraçÔes de capa geradas por: lexica.art
  • ConteĂșdo gerado por: ChatGPT com revisĂ”es humanas

#Pandas #Python #DataScience

Compartilhe
ComentĂĄrios (1)
DIO Community
DIO Community - 25/07/2025 08:59

Excelente, Carlos! Que artigo incrĂ­vel sobre as 5 funçÔes pouco conhecidas do Pandas para agilizar suas anĂĄlises! É fascinante ver como vocĂȘ desmistifica pd.eval(), df.query(), df.pipe(), df.at[]/df.iat[] e df.explode(), tornando-as acessĂ­veis e mostrando como elas podem deixar o cĂłdigo mais rĂĄpido e fĂĄcil de entender.

VocĂȘ demonstrou que essas funçÔes sĂŁo como atalhos secretos no seu jogo favorito, permitindo calcular tudo rapidinho em grandes tabelas, filtrar de forma legĂ­vel, compor funçÔes em pipelines, acessar valores individuais super rĂĄpido e transformar listas em linhas. Essa anĂĄlise se alinha perfeitamente Ă  nossa missĂŁo de capacitar talentos para que otimizem suas anĂĄlises de dados com Python.

Considerando que df.eval() Ă© mais rĂĄpido do que somar coluna por coluna e usa menos memĂłria em datasets grandes, qual vocĂȘ diria que Ă© o maior benefĂ­cio para um analista de dados ao utilizar pd.eval() para avaliação eficiente de expressĂ”es em grandes volumes de dados, em vez de operaçÔes diretas?