single
Розширене групування
Свайпніть щоб показати меню
Розширимо наші знання про метод .groupby(). Як ви пам'ятаєте, ми можемо використовувати метод .agg(). Основна перевага цієї функції — її гнучкість: вона дозволяє застосовувати декілька різних агрегацій до декількох стовпців одночасно, повертаючи акуратну підсумкову таблицю.
Розгляньте приклад нижче. Ми згрупували рейси за 'Airline'. Потім, використовуючи .agg(), підрахували загальну кількість рейсів (за стовпцем 'Delay') і одночасно знайшли найкоротшу та найдовшу тривалість рейсів (за стовпцем 'Length'). Дуже зручно, чи не так?
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data.groupby('Airline').agg({'Delay': 'count', 'Length': ['min', 'max']}) print(data_flights.head(10))
Пояснення:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Скорочено від "aggregate" (агрегувати). Цей метод бере згруповані дані та зводить їх до підсумкових статистик згідно з вказаними вами правилами.{}: Ми використовуємо словник Python для зіставлення певних стовпців із певними операціями. Ключі — це назви стовпців, до яких ви хочете застосувати функції, а значення — це функції, які потрібно застосувати.'Delay': 'count': Вказує pandas застосувати функцію підрахунку до стовпця'Delay'для кожної групи. Зверніть увагу, що ми передаємо рядковий псевдонім'count'замість написанняcount(). Pandas розпізнає ці стандартні рядкові назви для поширених статистичних функцій.'Length': ['min', 'max']: Якщо потрібно застосувати більше однієї функції до одного стовпця, імена функцій слід помістити у список[]. Тут ми обчислюємо як мінімальне, так і максимальне значення для стовпця'Length'.
Оскільки ми застосували кілька функцій, у результаті DataFrame автоматично створить ієрархічні (MultiIndex) стовпці. Ви побачите Length на верхньому рівні, а під ним акуратно категоризовані min та max.
Проведіть, щоб почати кодувати
Ваше завдання — детальніше проаналізувати середній та максимальний час затримки залежно від аеропорту, з якого починався рейс, а також аеропорту, в якому рейс завершувався. Також визначте медіанну тривалість польоту. Дотримуйтесь такого алгоритму:
Групування даних:
- Застосуйте метод
.groupby()до набору данихdata; - У методі
.groupby()вкажіть стовпці'AirportFrom'та'AirportTo'; порядок має значення; - За допомогою методу
.agg()розрахуйте агреговані значення: середнє та максимальне значення у стовпці'Time', а також медіанне значення у стовпці'Length'.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат