Pandas: создайте сводную таблицу с несколькими aggfunc
Вы можете использовать следующий синтаксис для создания сводной таблицы в pandas и предоставления нескольких значений аргументу aggfunc :
df. pivot_table (index=' col1 ', values=' col2 ', aggfunc=(' sum ', ' mean '))
В этом конкретном примере создается сводная таблица, в которой отображается сумма и среднее значение значений в столбце 2 , сгруппированные по столбцу 1 .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Создайте сводную таблицу Pandas с несколькими aggfunc.
Предположим, у нас есть следующий DataFrame 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 .
- Игроки команды Б имели среднее значение очков 6,50 и общее количество очков 26 .
- Игроки команды C имели среднее количество очков 5,75 и общее количество очков 23 .
Обратите внимание, что в этом примере мы агрегировали, используя сумму и среднее значение, но мы также могли агрегировать по другим показателям, например:
- считать
- мин
- максимум
- медиана
- стандартное отклонение (стандартное отклонение)
В следующем примере показано, как агрегировать значения столбца очков на основе этих метрик для каждой команды:
#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() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи panda:
Pandas: как отсортировать сводную таблицу по значениям в столбце
Pandas: как создать сводную таблицу с суммой значений
Pandas: как добавить промежуточные итоги в сводную таблицу
Pandas: как изменить имена столбцов в сводной таблице