question 422 pandas Transformations · easy
The average delay that weights days, not flights
average_delay should return each airline's average arrival delay over all its flights. It averages each day first and then averages those daily numbers, so a quiet day with one bad flight counts as much as a busy day. For American Airlines in the example the report says 77.8 minutes, but the four flights average 39.75. Fix it. Cancelled flights have no delay (None) and don't count.
Function
average_delay(records)recordsdictionaries with
airline_code, flight_date, arrival_delay (minutes or None)Returns
{airline_code: average delay}Examples
callaverage_delay([{'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': -3}, {'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': -23}, {'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': 18}, {'airline_code': 'AA', 'flight_date': '2025-01-11', 'arrival_delay': 167}])returns{'AA': 39.75}
callaverage_delay([{'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': -3}, {'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': -23}, {'airline_code': 'AA', 'flight_date': '2025-01-10', 'arrival_delay': 18}, {'airline_code': 'AA', 'flight_date': '2025-01-11', 'arrival_delay': 167}, {'airline_code': 'DL', 'flight_date': '2025-01-10', 'arrival_delay': -25}, {'airline_code': 'DL', 'flight_date': '2025-01-11', 'arrival_delay': 54}, {'airline_code': 'DL', 'flight_date': '2025-01-11', 'arrival_delay': None}])returns{'AA': 39.75, 'DL': 14.5}
callaverage_delay([{'airline_code': 'MQ', 'flight_date': '2025-01-10', 'arrival_delay': 42}])returns{'MQ': 42}