71 lines
2.7 KiB
Python
71 lines
2.7 KiB
Python
import pandas as pd
|
|
import os
|
|
|
|
# Caminhos
|
|
pasta_entrada = r"..\CONSULTA_ESTOQUE"
|
|
pasta_saida = r"..\SUPRIMENTOS\ANALISE_ESTOQUE\ESTOQUE_UNIFICADO_PDV24"
|
|
os.makedirs(pasta_saida, exist_ok=True)
|
|
|
|
# Lista subpastas
|
|
subpastas = [os.path.join(pasta_entrada, d) for d in os.listdir(pasta_entrada) if os.path.isdir(os.path.join(pasta_entrada, d))]
|
|
|
|
df_list = []
|
|
|
|
for subpasta in subpastas:
|
|
arquivos = [f for f in os.listdir(subpasta) if f.endswith(".csv")]
|
|
nome_pasta = os.path.basename(subpasta)
|
|
|
|
try:
|
|
parte_final = nome_pasta.split('_')[-1]
|
|
data_estoque = pd.to_datetime(parte_final[:8], format="%Y%m%d", errors='coerce')
|
|
except Exception:
|
|
data_estoque = pd.NaT
|
|
|
|
for arquivo in arquivos:
|
|
caminho_arquivo = os.path.join(subpasta, arquivo)
|
|
try:
|
|
df = pd.read_csv(caminho_arquivo, encoding="utf-8", low_memory=False)
|
|
|
|
# Filtrar apenas as colunas desejadas
|
|
colunas_desejadas = ["SKU", "SKU_PARA", "PDV", "ESTOQUE ATUAL", "DDV PREVISTO", "DESCRIÇÃO", "CATEGORIA"]
|
|
colunas_existentes = [col for col in colunas_desejadas if col in df.columns]
|
|
|
|
df = df[colunas_existentes].copy()
|
|
|
|
# Filtro PDV que começa com 24
|
|
df = df[df["PDV"].astype(str).str.startswith("24")]
|
|
|
|
df["Arquivo_Origem"] = arquivo
|
|
df["Pasta_Origem"] = nome_pasta
|
|
df["data_estoque"] = data_estoque
|
|
df_list.append(df)
|
|
except Exception as e:
|
|
print(f"Erro ao ler o arquivo {arquivo}: {e}")
|
|
|
|
# Consolidar e salvar o último estoque de junho
|
|
if df_list:
|
|
df_final = pd.concat(df_list, ignore_index=True)
|
|
df_final["data_estoque"] = pd.to_datetime(df_final["data_estoque"], errors="coerce")
|
|
df_final = df_final.dropna(subset=["data_estoque"])
|
|
|
|
# Filtrar anos 2024 e 2025 e apenas mês de junho
|
|
df_junho = df_final[
|
|
(df_final["data_estoque"].dt.year.isin([2025])) &
|
|
(df_final["data_estoque"].dt.month == 6)
|
|
].copy()
|
|
|
|
# Pegar o último dia de junho de cada ano
|
|
df_junho["ano"] = df_junho["data_estoque"].dt.year
|
|
ultimos_junho = df_junho.groupby("ano")["data_estoque"].max().reset_index()
|
|
|
|
# Filtrar apenas os registros do último dia de junho de cada ano
|
|
df_filtrado = df_junho.merge(ultimos_junho, on=["ano", "data_estoque"])
|
|
|
|
# Salvar resultado
|
|
caminho_saida = os.path.join(pasta_saida, "ESTOQUE_PDV24_ULTIMO_JUNHO.parquet")
|
|
df_filtrado.to_parquet(caminho_saida, index=False)
|
|
|
|
print("✅ Arquivo Parquet salvo com sucesso!")
|
|
print("📅 Últimos estoques de junho por ano incluídos:")
|
|
for d in ultimos_junho["data_estoque"]:
|
|
print(f" - {d.strftime('%d/%m/%Y')}") |