Метод pivot_table
Метод pivot_table применяется к DataFrame
и возвращает новую таблицу в виде сводной. Первым параметром
передаются значения для агрегации (параметр values),
параметр index задает строки сводной таблицы,
параметр columns - столбцы, а параметр aggfunc
определяет функцию агрегации (по умолчанию mean).
Этот метод удобно использовать для анализа данных по категориям.
Синтаксис
df.pivot_table(values, index, columns, aggfunc, fill_value)
Пример
Давайте создадим сводную таблицу, показывающую средние значения по категориям:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y'],
'b': ['m', 'n', 'm', 'n'],
'c': [1, 2, 3, 4]
})
res = df.pivot_table(values='c', index='a', columns='b')
print(res)
Результат выполнения кода:
b m n
a
x 1 2
y 3 4
Пример
Теперь укажем функцию суммы вместо среднего:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y', 'z'],
'b': ['m', 'n', 'm', 'n', 'm'],
'c': [1, 2, 3, 4, 5]
})
res = df.pivot_table(values='c', index='a', columns='b', aggfunc=sum)
print(res)
Результат выполнения кода:
b m n
a
x 1.0 2.0
y 3.0 4.0
z 5.0 NaN
Пример
Давайте заполним пропущенные значения нулями:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y', 'z'],
'b': ['m', 'n', 'm', 'n', 'm'],
'c': [1, 2, 3, 4, 5]
})
res = df.pivot_table(values='c', index='a', columns='b',
aggfunc=sum, fill_value=0)
print(res)
Результат выполнения кода:
b m n
a
x 1 2
y 3 4
z 5 0
Пример
Рассмотрим пример с несколькими значениями:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y'],
'b': ['m', 'n', 'm', 'n'],
'c': [1, 2, 3, 4],
'd': [10, 20, 30, 40]
})
res = df.pivot_table(values=['c', 'd'], index='a', columns='b')
print(res)
Результат выполнения кода:
c d
b m n m n
a
x 1 2 10 20
y 3 4 30 40