Pandas: як використовувати aggfunc у функції crosstab().
Ви можете використовувати аргумент aggfunc у функції pandas crosstab() , щоб створити перехресну таблицю, яка агрегує значення за допомогою певної метрики:
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')
Значенням aggfunc за замовчуванням є «count», але ви можете вказати інші методи агрегації, такі як середнє, медіанне, сума, min, max тощо.
Ви також можете вказати кілька методів агрегації в аргументі aggfunc :
p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])
Наступні приклади показують, як використовувати кожен із цих методів на практиці з такими pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '], ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 25 2 AF 24 3 BG 39 4 BF 34 5 BF 20 6 BF 18 7 GC 17 8 GC 20 9 CF 19 10 CF 22
Приклад 1: Створення перехресної таблиці зі значенням у aggfunc
Ми можемо використати наступну функцію crosstab() з аргументом aggfunc=’mean’ , щоб створити перехресну таблицю, яка відображає середні значення балів для кожної позиції та комбінації команд:
#create crosstab that displays mean points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ') position F G team A 24.0 23.5 B 24.0 39.0 C 20.5 18.5
Ось як інтерпретувати результат:
- Середня кількість очок гравців команди А на позиції F становить 24 .
- Середній бал гравців команди А на позиції G становить 23,5 .
І так далі.
Ми також можемо використовувати інший показник агрегації, наприклад максимальне значення:
#create crosstab that displays max points value by team and position p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ') position F G team At 24 25 B 34 39 C 22 20
Ось як інтерпретувати результат:
- Максимальна кількість очок для гравців команди А на позиції F становить 24 очки .
- Максимальна кількість очок для гравців команди A на позиції G становить 25 .
І так далі.
Приклад 2: Створення перехресної таблиці з кількома значеннями в aggfunc
Ми можемо використовувати функцію crosstab() із декількома значеннями в аргументі aggfunc , щоб агрегувати значення балів за декількома показниками для кожної позиції та командної комбінації:
#create crosstab that displays min and max points by team and position p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) min max position F G F G team A 24 22 24 25 B 18 39 34 39 C 19 17 22 20
Ось як інтерпретувати результат:
- Мінімальне значення очок для гравців команди А на позиції F становить 24 .
- Мінімальне значення балів для гравців команди А на позиції G становить 22 .
- Максимальне значення балів для гравців команди А на позиції F становить 24 .
- Максимальне значення очок для гравців команди А на позиції G становить 25 .
І так далі.
Примітка . Ви можете знайти повну документацію функції pandas crosstab() тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання панди:
Pandas: Як створити перехресну таблицю з відсотками
Pandas: як використовувати GroupBy і підрахунок значень
Pandas: як використовувати GroupBy із підрахунком bin