fix: corrige cálculo da média diária considerando todos os 365 dias do ano

This commit is contained in:
2026-06-07 20:12:03 -03:00
parent b7f09907c4
commit f905ca1a51
2 changed files with 99 additions and 85 deletions

View File

@@ -109,17 +109,24 @@ Começaremos focando em 5 trechos (alvo variável).
cells.append(nbf.v4.new_code_cell("""# Demanda diária por trecho
demanda_diaria = df_c97.groupby(['Trecho', 'Data Apenas'])['PAX'].sum().reset_index()
# Criar um range de datas para todo o ano de 2025 para contabilizar os dias sem voo
import itertools
datas_2025 = pd.date_range(start='2025-01-01', end='2025-12-31').date
todos_trechos = demanda_diaria['Trecho'].unique()
idx = pd.MultiIndex.from_product([todos_trechos, datas_2025], names=['Trecho', 'Data Apenas'])
demanda_diaria_completa = pd.DataFrame(index=idx).reset_index()
# Mesclar com os dados reais e preencher NaN com 0
demanda_diaria_completa = pd.merge(demanda_diaria_completa, demanda_diaria, on=['Trecho', 'Data Apenas'], how='left').fillna({'PAX': 0})
# Estatísticas (Média e Desvio Padrão) por trecho
estatisticas_trechos = demanda_diaria.groupby('Trecho').agg(
estatisticas_trechos = demanda_diaria_completa.groupby('Trecho').agg(
Media_PAX_Diario=('PAX', 'mean'),
Desvio_Padrao_PAX=('PAX', 'std'),
Total_PAX=('PAX', 'sum'),
Dias_Operados=('Data Apenas', 'count')
Dias_Operados=('PAX', lambda x: (x > 0).sum())
).reset_index()
# Preencher NaN no desvio padrão (caso operado apenas 1 dia) com 0
estatisticas_trechos['Desvio_Padrao_PAX'] = estatisticas_trechos['Desvio_Padrao_PAX'].fillna(0)
# Ordenar pelas rotas de maior média de PAX diário
estatisticas_trechos = estatisticas_trechos.sort_values(by='Media_PAX_Diario', ascending=False)

File diff suppressed because one or more lines are too long