Как преобразовать сводную таблицу Pandas в DataFrame


Вы можете использовать следующий синтаксис для преобразования сводной таблицы pandas в кадр данных pandas:

df = pivot_name. reset_index()

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: преобразование сводной таблицы в DataFrame

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
 'points': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

 team position points
0 A G 11
1 A G 8
2 A F 10
3 A F 6
4 B G 6
5 B G 5
6 B F 9
7 B F 12

Мы можем использовать следующий код для создания сводной таблицы, в которой отображаются средние очки, набранные командой и позицией:

#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position')

#view pivot table
df_pivot

position F G
team 
A 8.0 9.5
B 10.5 5.5

Затем мы можем использовать функцию reset_index() для преобразования этой сводной таблицы в DataFrame pandas:

#convert pivot table to DataFrame
df2 = df_pivot. reset_index()

#view DataFrame
df2

 team F G
0 A 8.0 9.5
1 B 10.5 5.5

Результатом является пандас DataFrame с двумя строками и тремя столбцами.

Мы также можем использовать следующий синтаксис для переименования столбцов DataFrame:

#convert pivot table to DataFrame
df2. columns = ['team', 'Forward_Pts', 'Guard_Pts']

#view updated DataFrame
df2

 team Forward_Pts Guard_Pts
0 A 8.0 9.5
1 B 10.5 5.5

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Pandas: как изменить форму DataFrame с длинного на широкий
Pandas: как изменить форму DataFrame с широкого на длинный
Pandas: как группировать и агрегировать по нескольким столбцам

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