Ana içeriğe geç
Kesit Python
Orta · Orta bitirme

Bitirme projesi: Kanat Havayolları gecikme analizi

Gerçek uçuş verisini okur, sorunlarını denetler, temizler, zaman dilimi ve neden bazında analiz eder, grafiğini çizer, tampon senaryosunu hesaplar ve operasyon müdürüne gerekçeli bir iş kararı yazarsın.

Uygulamada aç, 13 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Proje: kış tarifesinde tampon nereye?

Kanat Havayolları operasyon müdürü soruyor: "Eylülden beri geç kalkışlar artıyor. Kış tarifesinde bazı seferlerin planına 15 dakika tampon koyabilirim ama hepsine koyamam, uçağı boşa bekletmek pahalı. Nereye koyalım?" Bu proje bir analistin gerçek işini baştan sona yaptırır: veriyi oku, sorunlarını anla, temizle, analiz et, grafiği çiz, kararı yaz.

AdımSoruÇıktı
1. Oku ve denetleElimde ne var?denetle
2. TemizleHangi satırlar ve tanımlar?temizle
3. AnalizSorun nerede yoğun?grup_ozeti, neden_ozeti
4. GrafikNasıl gösteririm?grafik
5. SenaryoTampon ne kazandırır?tampon_etkisi
6. KararNe öneririm?karar, rapor

Önce veriyi tanı

Her analiz aynı soruyla başlar: bu tablo ne anlatıyor, nerede eksik? Burada boş değerlerin bir anlamı var: iptal seferde gerçek zaman olmaz, yön değiştiren seferde varış zamanı boştur.

import pandas as pd
import veri

TARIHLER = ["sched_dep", "sched_arr", "actual_dep", "actual_arr"]

def oku():
    ucus = veri.oku("kanat_havayollari", "hv_flights", parse_dates=TARIHLER)
    rotar = veri.oku("kanat_havayollari", "hv_delays")
    rota = veri.oku("kanat_havayollari", "hv_routes")
    return ucus, rotar, rota

ucus, rotar, rota = oku()
print(len(ucus), "sefer", ucus["status"].value_counts().to_dict())
print(ucus[["actual_dep", "actual_arr"]].isna().sum().to_dict())
print(len(rotar), "rötar satırı,", rotar["flight_id"].nunique(), "sefer")

Son satır bir tuzağı gösteriyor: 1.350 rötar satırı 1.228 seferi anlatıyor, çünkü bir seferin birden çok nedeni olabilir.

Tanımları yaz

Analizde en çok tartışma tanımlardan çıkar. Bu projenin tanımları: geç kalkış, planlanandan 15 dakikayı aşan kalkıştır; iptaller gecikme hesabına girmez, ayrı sayılır; dilimler sabah (12'den önce), öğle (12-18), akşam (18 ve sonrası). Tanımı değiştirirsen sonuç değişir, bu yüzden raporda da yazılır.

Sonuç nereye işaret ediyor?

İptaller çıkınca 3.111 sefer kalıyor ve %37,9 geç kalkış var. Dilimlere ayırınca fark görünür:

DilimSeferGeç oranıMedyan gecikme
akşam1.096%47,414,0 dk
sabah1.260%33,05,0 dk
öğle755%32,25,0 dk

Aylara bakınca oran Eylül'de %29,8 iken Aralık'ta %51,0. Neden tarafında en çok dakikayı hava kaybettiriyor (%32,6). Bu önemli bir uyarıdır: tampon hava koşulunu çözmez, yalnız yolcunun gördüğü gecikmeyi azaltır. Rapora bunu yazmak senin işin.

Veri notuBu veri kurgusaldır ve bilinen sınırları Veri setleri sayfasında yazar; örneğin geç gelen uçak nedeninin nedensellik gücü zayıftır. Yöntemi öğren, sonucu gerçek bir havayoluna genelleme.

Grafik karar için çizilir

import matplotlib.pyplot as plt
import pandas as pd
ozet = pd.DataFrame({'dilim': ['akşam', 'sabah', 'öğle'], 'gec_orani': [47.4, 33.0, 32.2]})
fig, ax = plt.subplots(figsize=(6, 3.5))
ax.bar(ozet["dilim"], ozet["gec_orani"], color="#3b6ea8")
ax.set_title("Zaman dilimine göre geç kalkış oranı")
ax.set_ylabel("Geç kalkış oranı (%)")
ax.set_ylim(0, None)
plt.show()

Başlık ne gösterdiğini söyler, eksen birimini yazar, sütun ekseni sıfırdan başlar. Tek bir renk yeter; karar sütunların yüksekliğindedir.

Kararı yaz

Hesabın sonunda elinde bir öneri olmalı. Akşam dilimine 15 dakika tampon, tüm seferlerde geç kalkış oranını %37,9 seviyesinden %27,9 seviyesine indirirdi; 310 sefer geç sayılmaktan çıkardı. Bu varsayımlı bir hesaptır, ölçüm değildir: rötarın kendisi değişmez varsayıldı. İyi bir karar notu bunu saklamaz, küçük bir deneme önerir.

Uzmanlaş

Projeyi portföye taşı

Aynı akışı kendi bilgisayarında bir defterde yap ve sonucu tek sayfalık nota dök. Rotaları ekle (en az 50 sefer eşiğiyle), hv_bookings ile geciken yolcu sayısını bağla, tamponun maliyetine bir varsayım koy. Görüşmede en çok şunu sorarlar: "Bu sonuca neden güveniyorsun, ne yanlış olabilir?" Cevabın burada: tanımlar, çıkarılan satırlar, bire çok tuzağı, senaryo varsayımı.

Alıştırmalara geç (13)