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 застосувати функцію count до стовпця'Delay'для кожної групи. Зверніть увагу, що ми передаємо рядковий псевдонім'count'замість написанняcount(). Pandas розпізнає ці стандартні рядкові назви для поширених статистичних функцій.'Length': ['min', 'max']: Якщо потрібно застосувати більше однієї функції до одного стовпця, імена функцій потрібно помістити у список[]. Тут ми обчислюємо як мінімальне, так і максимальне значення для стовпця'Length'.
Оскільки ми застосували декілька функцій, у результаті DataFrame автоматично створить ієрархічні (MultiIndex) стовпці. Ви побачите Length на верхньому рівні, а під ним акуратно категоризовані min та max.
Проведіть, щоб почати кодувати
Ваше завдання — детальніше проаналізувати середній та максимальний час затримки залежно від аеропорту, з якого починався рейс, а також аеропорту, в якому рейс закінчувався. Також визначте медіанну тривалість польоту. Дотримуйтесь такого алгоритму:
Групування даних:
- Застосуйте метод
.groupby()до набору данихdata; - У методі
.groupby()вкажіть стовпці'AirportFrom'та'AirportTo'; порядок має значення; - За допомогою методу
.agg()обчисліть агреговані значення: середнє та максимальне значення у стовпці'Time', а також медіанне значення у стовпці'Length'.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат