Как преобразовать вывод pandas groupby в dataframe


В этом руководстве объясняется, как преобразовать выходные данные pandas GroupBy в DataFrame pandas.

Пример: преобразование вывода Pandas GroupBy в DataFrame

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10

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

 #count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()

#viewoutput
print (group)

team position
AC 1
      F 1
      G2
BF 3
      G 1
dtype: int64

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

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

 team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

Чтобы добиться этого результата, мы можем просто использовать reset_index() при запуске GroupBy:

 #count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')

#viewoutput
print (df_out)

  team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

Вывод теперь отображается в желаемом формате.

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

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

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

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

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

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

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

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

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