Pandas Melt — Remodelando planilhas de maneira simples e eficaz
Pandas Melt — Remodelando planilhas de maneira simples e eficaz
Remodelagem de DataFrames é uma skill muito importante para a área de dados. Para os profissionais de dados, não é raro receber informações com estruturas irregulares e em arquivos Excel, por exemplo.
Entretanto, não é segredo que o Excel não é a ferramenta mais recomendada para fazer a correção da estrutura. É nesse momento que devemos contar com o apoio de ferramenas extras, como o Python.
Nesse artigo falarei sobre como explorar essa skill com o uso do pandas.melt(), mesmo que você não esteja familiarizado com o Python.
O método melt do pandas é uma ferramenta poderosíssima que nos permite fazer uma ação parecida com o transpor do Excel. A diferença é que possui alguns poderes a mais, nos permitindo trabalhar com planilhas muito mais complexas e reestruturá-las de maneira inteligente.
Vamos considerar uma planilha de estoque que contenha as informações:
- Coluna ‘Produto’, contendo uma listagem dos produtos disponíveis
- Coluna ‘Filial’, informando a qual filial o produto pertence
- Colunas com os dias do mês, informando quantas unidades do produto estavam disponíveis no período naquela filial
A planilha pode fazer sentido para um olhar humano, mas é difícil compilar essas informações para disponibilizá-las em um banco e permitir que outros relatórios sejam extraídos.
Para fazer a conexão com um banco de dados, o ideal é transformar essa espécie de tabela dinâmica em uma lista estruturada. É aqui que utilizamos o pandas.melt(). Ele fará todo o trabalho de transformar as colunas em linhas, considerando as devidas variáveis.
Primeiramente, se carregamos esse arquivo com o pandas, o dataframe fica da seguinte forma:
Pensando que o objetivo é conectar em um banco de dados, a estrutura não faz muito sentido, certo? Então, com apenas algumas linhas, podemos iniciar o processo de reestruturação:
import pandas as pd
df = pd.read_excel('/content/Planilha Estoque.xlsx')
df_melted = pd.melt(
df,
id_vars=[’Produto’, 'Filial’],
var_name=’Dia’,
value_name=’Quantidade’)
Nos parâmetros passados para o pd.melt(), temos:
- df, indicando o DataFrame lido no começo do código
- id_vars, indicando quais colunas devem ser mantidas para receber as informações após a transformação
- var_name, nome da nova coluna que será criada após a transformação
- value_name, nome da coluna com os valores obtidos
O resultado é esse:
Abordei neste artigo apenas o básico do melt(), mas ainda tem diversas formas de utilizá-lo. Nesse link você pode consultar mais detalhes, incluindo os outros parâmetros que ele pode receber. Resolvi abordar dessa forma pois vi alguns casos de dificuldade para encontrar material direcionado para o uso em Excel, mas ele pode facilmente ser utilizado com outras ferramentas.