Складне групування
Іноді виявляється, що вбудованих функцій pandas, таких як .mean()
або .min()
, недостатньо під час групування.
Зверніть увагу на стовпець 'Length'
; тут вказано тривалість польоту в хвилинах. Уявіть, що потрібно обчислити максимальний час у годинах для елементів з однаковим значенням у стовпці 'Flight'
, а потім у 'Airline'
. Для цього можна знайти максимальне значення стовпця 'Length'
для кожного ключа групування, а потім поділити його на 60
. Ознайомтеся з прикладом і поясненням нижче.
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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
Пояснення:
Ми ускладнили приклад із попередніх розділів, тому з групуванням даних усе залишається так само; звернемося до методу .apply()
.
.apply(lambda x: x['Length'].max()/60)
.apply()
— дозволяє застосувати певну функцію до потрібних стовпців;- у функції
lambda
аргументом єx
, а виразом —x['Length'].max()/60
. Тобто функція знаходить максимальне значення для кожного ключа групування та ділить агреговане значення на60
.
Swipe to start coding
Ваше завдання — згрупувати дані за аеропортом, з якого починається рейс, а потім за днем тижня. Обчисліть мінімальний час із суми стовпців груп 'Length'
та 'Time'
для кожної групи, щоб визначити, скільки часу може тривати рейс із затримкою. Дотримуйтесь алгоритму для виконання завдання:
Групування даних:
- Збережіть список стовпців
'AirportFrom'
,'Airline'
,'Time'
та'Length'
(саме в такому порядку) у зміннійcolumns
; - Витягніть
columns
ізdata
; - Порядок важливий у методі
.groupby()
; використовуйте стовпці'AirportFrom'
та'Airline'
саме в такому порядку; - Застосуйте функцію до значень набору даних із однаковими ключами групування;
- Обчисліть суму двох стовпців:
'Length'
та'Time'
. Потім знайдіть їхній мінімум.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.03
Складне групування
Свайпніть щоб показати меню
Іноді виявляється, що вбудованих функцій pandas, таких як .mean()
або .min()
, недостатньо під час групування.
Зверніть увагу на стовпець 'Length'
; тут вказано тривалість польоту в хвилинах. Уявіть, що потрібно обчислити максимальний час у годинах для елементів з однаковим значенням у стовпці 'Flight'
, а потім у 'Airline'
. Для цього можна знайти максимальне значення стовпця 'Length'
для кожного ключа групування, а потім поділити його на 60
. Ознайомтеся з прикладом і поясненням нижче.
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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
Пояснення:
Ми ускладнили приклад із попередніх розділів, тому з групуванням даних усе залишається так само; звернемося до методу .apply()
.
.apply(lambda x: x['Length'].max()/60)
.apply()
— дозволяє застосувати певну функцію до потрібних стовпців;- у функції
lambda
аргументом єx
, а виразом —x['Length'].max()/60
. Тобто функція знаходить максимальне значення для кожного ключа групування та ділить агреговане значення на60
.
Swipe to start coding
Ваше завдання — згрупувати дані за аеропортом, з якого починається рейс, а потім за днем тижня. Обчисліть мінімальний час із суми стовпців груп 'Length'
та 'Time'
для кожної групи, щоб визначити, скільки часу може тривати рейс із затримкою. Дотримуйтесь алгоритму для виконання завдання:
Групування даних:
- Збережіть список стовпців
'AirportFrom'
,'Airline'
,'Time'
та'Length'
(саме в такому порядку) у зміннійcolumns
; - Витягніть
columns
ізdata
; - Порядок важливий у методі
.groupby()
; використовуйте стовпці'AirportFrom'
та'Airline'
саме в такому порядку; - Застосуйте функцію до значень набору даних із однаковими ключами групування;
- Обчисліть суму двох стовпців:
'Length'
та'Time'
. Потім знайдіть їхній мінімум.
Рішення
Дякуємо за ваш відгук!
single