Pandas: как добавить промежуточные итоги в сводную таблицу


Часто вам может понадобиться добавить промежуточные итоги в сводную таблицу панд.

К счастью, это легко сделать с помощью встроенных функций в pandas.

В следующем примере показано, как это сделать.

Пример: добавление промежуточных итогов в сводную таблицу Pandas

Предположим, у нас есть следующий кадр данных pandas, который содержит информацию о различных баскетболистах:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'position': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
 'all_star': ['Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y'],
 'points': [4, 4, 6, 8, 9, 5, 5, 12]})

#view DataFrame
print(df)

 team position all_star points
0 A G Y 4
1 A G N 4
2 A F Y 6
3 A F Y 8
4 B G N 9
5 B F N 5
6 B F N 5
7 B F Y 12

Мы можем использовать следующий код для создания сводной таблицы в pandas, которая показывает сумму баллов для каждой комбинации team , all_star и position в DataFrame:

#create pivot table
my_table = pd.pivot_table(df, values='points',
 index=['team', 'all_star'],
 columns='position',
 aggfunc='sum')

#view pivot table
print(my_table)

position F G
team all_star 
A N NaN 4.0
 Y 14.0 4.0
B N 10.0 9.0
 Y 12.0 NaN

Теперь предположим, что мы хотим добавить строку промежуточных итогов, которая показывает промежуточную сумму очков для каждой команды и позиции.

Для этого мы можем использовать следующий синтаксис:

#add subtotals row to pivot table
pd.concat([
 y.append(y. sum().rename ((x, 'Total')))
 for x, y in my_table.groupby (level= 0 )
]).append(my_table.sum().rename (('Grand', 'Total')))

 position F G
team all_star 
A N NaN 4.0
 Y 7.0 4.0
 Total 7.0 8.0
B N 5.0 9.0
 Y 12.0 NaN
 Total 17.0 9.0
Grand Total 24.0 17.0

Теперь у нас есть две строки промежуточных итогов, которые показывают промежуточные суммы очков для каждой команды и позиции, а также строка общей суммы, которая показывает общую сумму каждого столбца.

Примечание.Полную документацию по функции pandas pivot_table() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.