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.

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).

import pandas as pd
URL = "http://profalibania.com.br/python/FinalTestKipacoca.xlsx"
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.

import pandas as pd
URL = "http://profalibania.com.br/python/FinalTestKipacoca.xlsx"
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 , ,

Gosta de filmes? Gosta de aprender? Então aproveita a segunda parte do MBA vai ao cinema!
Quando você estava na escola, já ficou chutando um número para sua prova final manualmente para descobrir o quanto faltava para você passar? Pois é, o Excel faz isso automaticamente para você!
A vida com o Excel fica mais fácil no trabalho e em casa. Conheça o mínimo que você precisa saber desta grande ferramenta para fazer bonito numa entrevista de emprego!
Além do preço e das condições de uma negociação, onde podemos errar? Ah.... em várias coisas... e muitas estão dentro de nós.