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 застосувати функцію count до стовпця '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