refactor: nova métrica PAX/Dias_Operados para relevância de rotas
This commit is contained in:
17
create_nb.py
17
create_nb.py
@@ -127,8 +127,13 @@ estatisticas_trechos = demanda_diaria_completa.groupby('Trecho').agg(
|
||||
Dias_Operados=('PAX', lambda x: (x > 0).sum())
|
||||
).reset_index()
|
||||
|
||||
# Ordenar pelas rotas com maior número de dias operados
|
||||
estatisticas_trechos = estatisticas_trechos.sort_values(by='Dias_Operados', ascending=False)
|
||||
# Nova métrica: PAX/Dias_Operados (evitando divisão por zero)
|
||||
estatisticas_trechos['Media_PAX_Dias_Operados'] = estatisticas_trechos.apply(
|
||||
lambda row: row['Total_PAX'] / row['Dias_Operados'] if row['Dias_Operados'] > 0 else 0, axis=1
|
||||
)
|
||||
|
||||
# Ordenar pelas rotas com maior Média PAX por dias operados
|
||||
estatisticas_trechos = estatisticas_trechos.sort_values(by='Media_PAX_Dias_Operados', ascending=False)
|
||||
|
||||
# Definir número de trechos alvo
|
||||
NUM_TRECHOS = 5
|
||||
@@ -138,9 +143,9 @@ display(top_trechos)
|
||||
|
||||
# Gráfico
|
||||
plt.figure(figsize=(10, 6))
|
||||
sns.barplot(data=top_trechos, x='Trecho', y='Dias_Operados', hue='Trecho', palette='viridis', legend=False)
|
||||
plt.title(f'Top {NUM_TRECHOS} Trechos Mais Relevantes (Por Dias Operados)')
|
||||
plt.ylabel('Número de Dias Operados no Ano')
|
||||
sns.barplot(data=top_trechos, x='Trecho', y='Media_PAX_Dias_Operados', hue='Trecho', palette='viridis', legend=False)
|
||||
plt.title(f'Top {NUM_TRECHOS} Trechos Mais Relevantes (PAX / Dias Operados)')
|
||||
plt.ylabel('Média de PAX por Dia Operado')
|
||||
plt.xlabel('Trecho (Origem - Destino)')
|
||||
plt.xticks(rotation=45)
|
||||
plt.tight_layout()
|
||||
@@ -186,7 +191,7 @@ for r in rotas_lista:
|
||||
voos_requeridos = {}
|
||||
for _, row in top_trechos.iterrows():
|
||||
# Arredondamento para cima da (demanda / capacidade)
|
||||
voos = math.ceil(row['Media_PAX_Diario'] / CAPACIDADE_C97)
|
||||
voos = math.ceil(row['Media_PAX_Dias_Operados'] / CAPACIDADE_C97)
|
||||
# Pelo menos 1 voo para suprir a demanda da rota selecionada
|
||||
voos_requeridos[row['Trecho']] = max(1, voos)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user