Функция pivot_table
Функция pivot_table предназначена для создания сводных таблиц
из данных DataFrame. Она позволяет агрегировать данные,
группируя их по строкам и столбцам, и применяя различные функции
агрегации. Основные параметры: values - столбцы для агрегации,
index - группировка по строкам, columns - группировка
по столбцам, aggfunc - функция агрегации (по умолчанию mean),
fill_value - значение для заполнения пропусков.
Синтаксис
pd.pivot_table(df, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, ...)
Пример
Создадим простой DataFrame и построим сводную таблицу с группировкой по индексу и столбцам:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y'],
'b': ['one', 'two', 'one', 'two'],
'c': [1, 2, 3, 4]
})
res = pd.pivot_table(df, values='c', index='a', columns='b', aggfunc='sum')
print(res)
Результат выполнения кода:
b one two
a
x 1 2
y 3 4
Пример
Используем функцию агрегации mean и заполним пропуски нулём:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y', 'z'],
'b': ['one', 'two', 'one', 'two', 'one'],
'c': [5, 6, 7, 8, 9]
})
res = pd.pivot_table(df, values='c', index='a', columns='b', aggfunc='mean', fill_value=0)
print(res)
Результат выполнения кода:
b one two
a
x 5.0 6.0
y 7.0 8.0
z 9.0 0.0
Пример
Множественная агрегация с несколькими функциями:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y'],
'b': ['one', 'two', 'one', 'two'],
'c': [10, 20, 30, 40],
'd': [1, 2, 3, 4]
})
res = pd.pivot_table(df, values=['c', 'd'], index='a', columns='b', aggfunc=['sum', 'mean'])
print(res)
Результат выполнения кода:
c d
sum mean sum mean
b one two one two one two one two
a
x 10 20 10 20 1 2 1 2
y 30 40 30 40 3 4 3 4
Смотрите также
-
функция
pivot,
которая выполняет перестройку таблицы без агрегации -
функция
crosstab,
которая строит таблицу частотных пересечений -
функция
melt,
которая преобразует широкий формат данных в длинный -
функция
get_dummies,
которая создаёт фиктивные переменные для категорий