Pandas: как изменить имена столбцов в сводной таблице


Часто вы можете захотеть изменить или отформатировать имена столбцов в сводной таблице 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

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