Back

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.