Pandas: створіть зведену таблицю з кількома aggfunc


Ви можете використовувати такий синтаксис, щоб створити зведену таблицю в pandas і надати кілька значень аргументу aggfunc :

 df. pivot_table (index=' col1 ', values=' col2 ', aggfunc=(' sum ', ' mean '))

У цьому конкретному прикладі створюється зведена таблиця, яка відображає суму та середнє значення в col2 , згрупованих за col1 .

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: створіть зведену таблицю Pandas із кількома aggfunc

Припустімо, що у нас є такий фрейм даних pandas, який містить інформацію про різних баскетболістів:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B',
                            'B', 'B', 'C', 'C', 'C', 'C'],
                   ' points ': [4, 4, 2, 8, 9, 5, 5, 7, 8, 8, 4, 3],
                   ' assists ': [2, 2, 5, 5, 4, 7, 5, 3, 9, 8, 4, 4]})

#view DataFrame
print (df)

   team points assists
0 to 4 2
1 to 4 2
2 to 2 5
3 to 8 5
4 B 9 4
5 B 5 7
6 B 5 5
7 B 7 3
8 C 8 9
9 C 8 8
10 C 4 4
11 C 3 4

Ми можемо використати наступний код, щоб створити зведену таблицю, яка підсумовує як суму, так і середню кількість очок , набраних кожною командою :

 #create pivot table to summarize sum and mean of points by team
df. pivot_table (index=' team ', values=' points ', aggfunc=(' sum ', ' mean '))

	mean sum
team		
At 4.50 18
B 6.50 26
C 5.75 23

Отримана зведена таблиця підсумовує середнє значення та суму очок, набраних кожною командою.

Наприклад, ми можемо побачити:

  • Гравці команди А мали середнє значення балів 4,50 і загальне значення балів 18 .
  • Гравці команди B мали середнє значення балів 6,50 і загальне значення балів 26 .
  • Гравці команди C мали середнє значення балів 5,75 і загальне значення балів 23 .

Зверніть увагу, що в цьому прикладі ми агрегували за допомогою суми та середнього, але ми також могли агрегувати за іншими показниками, наприклад:

  • рахувати
  • хв
  • максимум
  • медіана
  • std (стандартне відхилення)

У наступному прикладі показано, як агрегувати значення стовпця балів на основі цих показників для кожної команди:

 #create pivot table to summarize several metrics for points by team
df. pivot_table (index=' team ', values=' points ',
               aggfunc=(' count ', ' min ', ' max ', ' median ', ' std '))

        count max median min std
team					
A 4 8 4.0 2 2.516611
B 4 9 6.0 5 1.914854
C 4 8 6.0 3 2.629956

Примітка . Ви можете знайти повну документацію щодо функції pandas pivot_table() тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші поширені завдання панди:

Pandas: Як сортувати зведену таблицю за значеннями в стовпці
Pandas: Як створити зведену таблицю із сумою значень
Pandas: Як додати проміжні підсумки до зведеної таблиці
Pandas: як змінити назви стовпців у зведеній таблиці

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

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