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: як змінити назви стовпців у зведеній таблиці