Spaces:
Sleeping
Sleeping
| 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}") |