dashboard-sicoob-case / verificar_colunas.py
Thiago Mateus Teles Amorim
Versão final e corrigida do dashboard
71f38f0
import pandas as pd
import os
def carregar_dados_final():
script_dir = os.path.dirname(__file__)
caminho_do_arquivo = os.path.join(script_dir, 'dados.csv')
df = pd.read_csv(caminho_do_arquivo, header=None, encoding='latin-1', delimiter=';')
df.columns = [
'REMESSA', 'DATA_PEDIDO', 'DATA_RECEBIMENTO', 'DATA_DE_EXPEDICAO', 'RET-E', 'RET-R',
'TIPO_DE_PLASTICO', 'CHIP', 'QTD_PLASTICO', 'DISTRIBUIDORA', 'TIPO_DE_MAQUINA',
'RENOVACAO', 'FABRICA'
]
df = df.iloc[1:].reset_index(drop=True)
df['DATA_RECEBIMENTO'] = pd.to_datetime(df['DATA_RECEBIMENTO'], dayfirst=True, errors='coerce')
df['DATA_DE_EXPEDICAO'] = pd.to_datetime(df['DATA_DE_EXPEDICAO'], dayfirst=True, errors='coerce')
df.dropna(subset=['DATA_RECEBIMENTO', 'DATA_DE_EXPEDICAO'], inplace=True)
df['QTD_PLASTICO'] = pd.to_numeric(df['QTD_PLASTICO'], errors='coerce').fillna(0)
df = df[df['QTD_PLASTICO'] > 0].copy()
df['dias_para_expedir'] = (df['DATA_DE_EXPEDICAO'] - df['DATA_RECEBIMENTO']).dt.days
df = df[df['dias_para_expedir'] >= 0].copy()
df['sla_status'] = df['dias_para_expedir'] <= 3
remessas_atrasadas_ids = df[df['sla_status'] == False]['REMESSA'].unique()
df.loc[df['REMESSA'].isin(remessas_atrasadas_ids), 'sla_status'] = False
return df
try:
df_final = carregar_dados_final()
total_remessas = df_final['REMESSA'].nunique()
remessas_no_prazo = df_final[df_final['sla_status'] == True]['REMESSA'].nunique()
remessas_atrasadas = df_final[df_final['sla_status'] == False]['REMESSA'].nunique()
print("\n--- Números Finais e Corretos da Análise ---")
print(f"Total de Remessas Únicas Relevantes: {total_remessas}")
print(f"Total de Remessas No Prazo: {remessas_no_prazo}")
print(f"Total de Remessas Atrasadas: {remessas_atrasadas}")
print("---------------------------------------------")
except Exception as e:
print(f"Ocorreu um erro: {e}")