Як перетворити вихід pandas groupby на dataframe


У цьому посібнику пояснюється, як перетворити вихід pandas GroupBy на pandas DataFrame.

Приклад: перетворення вихідних даних 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

Вихідні дані тепер з’являються в потрібному форматі.

Зауважте, що аргумент name у reset_index() визначає назву нового стовпця, створеного GroupBy.

Ми також можемо підтвердити, що результат справді є pandas DataFrame:

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

Примітка . Повну документацію щодо операції GroupBy в pandas можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *