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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *