Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Розширене групування | Агрегування Даних
Обробка Даних з Pandas
Секція 4. Розділ 4
single

single

bookРозширене групування

Свайпніть щоб показати меню

Розширимо наші знання про метод .groupby(). Як ви пам'ятаєте, ми можемо використовувати метод .agg(). Основна перевага цієї функції — її гнучкість: вона дозволяє застосовувати декілька різних агрегацій до декількох стовпців одночасно, повертаючи акуратну підсумкову таблицю.

Розгляньте приклад нижче. Ми згрупували рейси за 'Airline'. Потім, використовуючи .agg(), підрахували загальну кількість рейсів (за стовпцем 'Delay') і одночасно знайшли найкоротшу та найдовшу тривалість рейсів (за стовпцем 'Length'). Дуже зручно, чи не так?

1234
import 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))
copy

Пояснення:

.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'.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt