Da Planilha ao Código: Como Python Teria Transformado Minha Rotina de Técnica de Materiais
Uma história real de como a automação com Pandas poderia ter me devolvido 10 horas por semana e me transformado de uma "caçadora de dados" em uma analista estratégica.
A Batalha Diária Contra o Estoque Zerado
Se você já trabalhou em logística ou controle de materiais, conhece a sensação. O dia mal começa e a pressão já existe: "precisamos do relatório de itens críticos para a reunião das 10h". Para mim, como Técnica de Materiais, o dia começava como uma verdadeira corrida de obstáculos digital. Minha rotina consistia em acessar o SAP e exportar relatórios de consumo dos materiais, da quantidade disponível em estoque e dos pedidos já gerados para aqueles itens que haviam atingido ou ultrapassado o ponto de reabastecimento. A missão era simples de explicar, mas nada fácil de executar: consolidar todas essas informações, identificar os materiais críticos e entender o impacto no abastecimento.
A Solução: Python e a Biblioteca Pandas como Aliados Estratégicos
Para quem está imerso no mundo do Excel, o Python pode parecer intimidador. Mas imagine uma ferramenta que faz tudo o que o Excel faz, só que de forma automática, mais rápida e sem o risco de um clique errado apagar uma fórmula crucial. Essa ferramenta tem um nome: a biblioteca Pandas.
Pense no Pandas como um canivete suíço para manipulação de dados. Ele foi criado exatamente para resolver os problemas que eu enfrentava diariamente:
Leitura de Múltiplas Fontes: Ele consegue ler arquivos Excel, CSV, conectar a bancos de dados e muito mais, tudo com uma única linha de código.
Cruzamento de Dados (o procv Turbinado): Ele cruza informações de diferentes tabelas de forma inteligente e incrivelmente rápida, sem travar com grandes volumes de dados.
Análise e Filtragem: Permite criar filtros complexos para encontrar exatamente o que você procura (como todos os itens com quantidade igual a zero).
Reprodutibilidade: Uma vez que o script é escrito, ele executa a mesma tarefa da mesma forma, sempre. Adeus, erro humano.
Estudo de Caso: Minha Rotina, Reimaginada com Python
Para entender o impacto, vamos comparar o "antes" e o "depois".
Antes (A Minha Realidade Manual):
07:00: Exportar 4 relatórios do SAP (mb52.xlsx, me23n.xlsx, me2m.xlsx, me24.xlsx).
07:15: Abrir os três arquivos. Travar o computador por alguns minutos.
07:30: Na planilha de estoque, filtrar pela coluna "Quantidade" para mostrar apenas os valores "0".
07:35 Copiar o código de cada item zerado.
07:45: Ir para a planilha de tratamento dos itens zerados e procurar pelo código para ver se havia uma causa registrada para o aumento de consumo e o item está zerado.
08:45: Consolidar tudo na planilha de controle de estoque de itens zerados.
09:00: Hora da reunião e apresentar o relatório de itens zerados.
Depois (A Simulação com Python):
07:00: Ligar o computador. Colocar os 4 arquivos exportados na mesma pasta.
07:05: Executar um único script Python.
07:06: O script lê as três planilhas, identifica os itens zerados, busca a última movimentação e a causa registrada para cada um, e gera um novo arquivo Excel, relatorio_criticos_hoje.xlsx
, já formatado e pronto.
07:07 - 10:00: Usar o tempo restante para analisar o relatório. "Por que a peça X zerou de novo? Precisamos ver se é um pico de consumo ou rever se o ponto de reabastecimento e estoque máximo estão atendendo a demanda do material." "O fornecedor da peça Y está atrasando sempre. Vou ligar para ver se há alguma divergência no valor ou se ele ainda não tem a peça."
A diferença não é apenas sobre tempo; é sobre mudar o foco de operacional para estratégico.
Tutorial Prático: Construindo o Script que Mudaria Meu Jogo
Vamos criar uma versão simplificada do script que eu sonharia em ter.
Passo 1: Preparando o Ambiente Primeiro, precisamos instalar o Python e as bibliotecas necessárias. Abra o terminal do seu computador e digite:
pip install pandas openpyxl
Passo 2: O Código para a Automação Crie um arquivo chamado analise_estoque.py
e coloque o seguinte código dentro dele. Imagine que na mesma pasta você tem os arquivos estoque.xlsx
, movimentacoes.xlsx
e justificativas.xlsx
.
# Importar a biblioteca Pandas
import pandas as pd
print("Iniciando a análise de estoque...")
# Passo 1: Carregar os dados das planilhas para o Python
try:
df_estoque = pd.read_excel("estoque.xlsx")
df_movimentacoes = pd.read_excel("movimentacoes.xlsx")
df_justificativas = pd.read_excel("justificativas.xlsx")
print("Arquivos lidos com sucesso!")
except FileNotFoundError:
print("Erro: Verifique se os arquivos Excel estão na mesma pasta do script.")
exit()
# Passo 2: Identificar os itens com estoque zerado
itens_zerados = df_estoque[df_estoque['Quantidade'] == 0]
if itens_zerados.empty:
print("Nenhum item com estoque zerado encontrado. Bom trabalho!")
exit()
print(f"Encontrados {len(itens_zerados)} itens com estoque zerado.")
# Passo 3: Cruzar dados para encontrar a causa
# Primeiro, cruzamos os itens zerados com as justificativas
relatorio_parcial = pd.merge(
itens_zerados,
df_justificativas,
on='Codigo_Produto', # 'on' é a coluna em comum para o cruzamento
how='left' # 'left' para manter todos os itens zerados, mesmo sem justificativa
)
# Agora, vamos encontrar a data da última movimentação (um passo mais avançado)
# Para simplificar, vamos assumir que a planilha de movimentações já tem a data da última saída
df_movimentacoes['Data'] = pd.to_datetime(df_movimentacoes['Data'])
ultima_saida = df_movimentacoes.loc[df_movimentacoes.groupby('Codigo_Produto')['Data'].idxmax()]
# Cruzamos o relatório com a data da última saída
relatorio_final = pd.merge(
relatorio_parcial,
ultima_saida[['Codigo_Produto', 'Data']],
on='Codigo_Produto',
how='left'
)
# Renomear colunas para clareza
relatorio_final = relatorio_final.rename(columns={'Data': 'Data_Ultima_Saida'})
# Passo 4: Gerar o novo arquivo Excel com o resultado
nome_arquivo_saida = "Relatorio_Itens_Criticos.xlsx"
relatorio_final.to_excel(nome_arquivo_saida, index=False)
print(f"Análise concluída! O relatório '{nome_arquivo_saida}' foi gerado com sucesso.")