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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *