np.random.seed(73)
flights = pl.DataFrame({
"airline": np.random.choice(["MAU", "UIA", "SkyUp", "Wizz"], 10000),
"origin": np.random.choice(["Київ", "Львів", "Одеса", "Харків"], 10000),
"dest": np.random.choice(["Варшава", "Берлін", "Прага", "Відень", "Рим"], 10000),
"delay": np.random.normal(10, 30, 10000).round(1),
"distance": np.random.randint(500, 3000, 10000),
"date": pl.Series("date", [date(2023, 1, 1) + timedelta(days=int(d)) for d in np.random.randint(0, 859, 10000)]),
})
(
flights
.filter(pl.col("delay") > 0)
.group_by("airline")
.agg(
pl.col("delay").mean().alias("avg_delay"),
pl.col("delay").max().alias("max_delay"),
pl.len().alias("n_delayed"),
)
.sort("avg_delay", descending=True)
)