Python: como executar uma função para modificar dados no Pandas

Como Pensar como Programador - Parte 4

Como podemos usar uma função para modificar valores dentro do Pandas?

No vídeo 5 da série Programar não é escrever código, é resolver problemas, criamos uma função para retornar o nome da transportadora no nosso vídeo (que você pode conferir no final do post). Mas agora queremos chamar a função para completar os dados de nossa base em Excel.

Para isso, usamos o apply(). O apply() “aplica” uma função a uma coluna, linha ou célula de um dataframe no Pandas. Vamos a um exemplo simples: a função abaixo multiplica a coluna Quantidade de um dataframe por outra coluna chamada Preço Unitário.

01
02
def geraTotal(pedidos):
  return pedidos["Quantidade"] * pedidos["Preço Unitário"]

Vamos importar os dados da Dr. Paçoca e usar o apply() para chamar a função geraTotal. O argumento axis do apply() indica se ele vai se orientar pelas colunas (axis=0) ou pelas linhas (axis=1).

01
02
03
04
05
06
import pandas as pd
pedidos = pd.read_excel(URL)
 
pedidos["Total"] = pedidos.apply(geraTotal, axis=1)
display(pedidos)

O apply funciona de modo simples… quando nossa função possui apenas um argumento… ☹ No nosso exemplo, a função transporte(pedidos, estado) pede dois argumentos: pedido, que é o valor total de cada linha do dataframe, e o estado, que é o destino da entrega. Para esses casos, precisamos “disfarçar” nossa função usando o lamdba.

O lambda é uma função que cria uma função anônima… 😮 Em Português, serve para empacotar cálculos e comandos em um só lugar (como qualquer função faz), mas sem precisarmos dar nome a ela. Para nós, ela servirá para “empacotar” a chama da função transporte, com seus dois argumentos, já que o apply só suporta um.

01
02
03
04
05
import pandas as pd
pedidos = pd.read_excel(URL)
 
pedidos['Transportadora'] = pedidos.apply(lambda x : transportadora(x.Total, x.Estado), axis=1)

Se eu der o display agora, vou ver a transportadora para cada pedido!

Projeto Original

Você pode conferir o projeto original no vídeo abaixo:

Mais sobre , ,

Se somos tão dependentes de tecnologia, por que muitas empresas não se protegem? A Visa Net já investe nisso há muitos anos.
Exercícios para quem está começando e para quem já conhece um pouco dessas funções muito úteis de consolidação de dados.
DevOps une desenvolvimento e operações para melhorar os ciclos de gerenciamento e aumentarem a segurança e disponibilidade da infeaestrutura de TI.... E, na prática, o que é?
Antes de saber o que DevOps ou Método Ágil, é muito bom conhecer como se desenvolve um software ou aplicativo.