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


Чтобы удалить multiIndex из сводной таблицы pandas, вы можете использовать аргумент значений с функцией reset_index() :

 p.d. pivot_table (df, index=' col1 ', columns=' col2 ', values=' col3 '). reset_index ()

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

Пример: удалить MultiIndex в сводной таблице Pandas

Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетболистах:

 import pandas as pd

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

#view DataFrame
print (df)

  team position points
0 AG 4
1 GA 4
2 AF 6
3AF 8
4 BG 9
5 BF 5
6 BF 5
7 BF 12

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

 #create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ')

	        points
FG position
team		
At 7.000000 4.0
B 7.333333 9.0

Полученная сводная таблица суммирует среднее значение очков по командам и позициям , но содержит multiIndex.

Чтобы удалить multiIndex, мы можем использовать аргумент значений в функции Pivot_table() и добавить в конце reset_index() :

 #create pivot table to summarize mean points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points '). reset_index ()

position team F G
0 to 7.000000 4.0
1 B 7.333333 9.0

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

Обратите внимание, что функция Pivot_table() по умолчанию вычисляет среднее значение.

Чтобы вычислить другую метрику, например сумму, используйте аргумент aggfunc следующим образом:

 #create pivot table to summarize sum of points by team and position
p.d. pivot_table (df, index=' team ', columns=' position ', values=' points ',
               aggfunc=' sum '). reset_index ()

position team FG
0 to 14 8
1 B 22 9

Полученная сводная таблица суммирует сумму значений очков по командам и позициям и также не имеет мультииндекса.

Примечание . Полную документацию по функции pandas Pivot_table() можно найти здесь .

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

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

Pandas: как добавить фильтр в сводную таблицу
Pandas: как отсортировать сводную таблицу по значениям в столбце
Pandas: как добавить промежуточные итоги в сводную таблицу

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *