Часто вы можете захотеть изменить или отформатировать имена столбцов в сводной таблице 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', 'C', 'G', 'C', 'F', 'F'],
'points': [4, 4, 6, 8, 9, 5, 5, 12]})
#view DataFrame
print(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 C 5
6 B F 5
7 B F 12
Мы можем использовать следующий код для создания сводной таблицы в pandas, которая показывает среднее значение очков для каждой команды и позиции в DataFrame:
#create pivot table
piv = pd.pivot_table(df, values='points', index='team', columns='position')
#view pivot table
print(piv)
position C F G
team
A 8.0 6.0 4.0
B 5.0 8.5 9.0
Теперь предположим, что мы хотим избавиться от слова position в сводной таблице и удалить из сводной таблицы дополнительную строку команды .
Для этого мы можем использовать следующий синтаксис:
#format column names
piv. columns = ['_'.join(str(s). strip () for s in col if s) for col in piv. columns ]
#reset index
piv. reset_index(inplace= True )
#view updated pivot table
print(piv)
team C F G
0 A 8.0 6.0 4.0
1 B 5.0 8.5 9.0
Обратите внимание, что мы смогли избавиться от позиции слова в сводной таблице и удалить дополнительную строку команды из сводной таблицы.
Также обратите внимание, что это общее решение будет работать и для сводной таблицы с MultiIndex.
Примечание.Полную документацию по функции pandas pivot_table() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Pandas: как создать сводную таблицу с подсчетом значений
Pandas: как заменить значения NaN в сводной таблице нулями
Pandas: как преобразовать сводную таблицу в DataFrame