Вы можете использовать один из следующих методов для создания сводной таблицы в pandas, которая отображает количество значений в определенных столбцах:
Метод 1: сводная таблица с подсчетами
pd.pivot_table(df, values='col1', index='col2', columns='col3',
aggfunc='count')
Метод 2: сводная таблица с уникальными счетчиками
pd.pivot_table(df, values='col1', index='col2', columns='col3',
aggfunc=pd.Series.nunique )
В следующих примерах показано, как использовать каждый метод со следующими пандами DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
'points': [4, 4, 6, 8, 9, 5, 5, 12]})
#view DataFrame
df
team position points
0 A G 4
1 A G 4
2 A F 6
3 A C 8
4 B G 9
5 B F 5
6 B F 5
7 B F 12
Способ 1: создать сводную таблицу Pandas с подсчетами
В следующем коде показано, как создать сводную таблицу в pandas, которая показывает общее количество значений «очков» для каждой «команды» и «позиции» в DataFrame:
#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position',
aggfunc='count')
#view pivot table
df_pivot
position C F G
team
A 1.0 1.0 2.0
B NaN 3.0 1.0
Из вывода мы видим:
- В столбце «Очки» есть 1 значение для команды A на позиции C.
- В столбце «Очки» есть 1 значение для команды A на позиции F.
- В столбце «очки» есть 2 значения для команды A на позиции G.
И так далее.
Способ 2: создать сводную таблицу Pandas с уникальными счетчиками
В следующем коде показано, как создать сводную таблицу в pandas, которая показывает общее уникальное количество значений «баллов» для каждой «команды» и «позиции» в DataFrame:
#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position',
aggfunc=pd.Series.nunique )
#view pivot table
df_pivot
position C F G
team
A 1.0 1.0 1.0
B NaN 2.0 1.0
Из вывода мы видим:
- В столбце «Очки» есть 1 уникальное значение для команды A на позиции C.
- В столбце «Очки» есть 1 уникальное значение для команды A на позиции F.
- В столбце «Очки» есть 1 уникальное значение для команды A на позиции G.
И так далее.
Примечание.Полную документацию по функции pandas pivot_table() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Pandas: как изменить форму DataFrame с длинного на широкий
Pandas: как изменить форму DataFrame с широкого на длинный
Pandas: как группировать и агрегировать по нескольким столбцам