Как преобразовать вывод Pandas GroupBy в DataFrame


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

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

Предположим, у нас есть следующий кадр данных 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', 'F', 'F', 'F'],
 'points': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print(df)

 team position points
0 A G 5
1 A G 7
2 A F 7
3 A C 10
4 B G 12
5 B F 22
6 B F 15
7 B F 10

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

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

#view output
print(group)

team position
A C 1
 F 1
 G 2
B F 3
 G 1
dtype: int64

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

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

team position count
0 A C 1
1 A F 1
2 A G 2
3 B F 3
4 B G 1

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

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

#view output
print(df_out)

 team position count
0 A C 1
1 A F 1
2 A G 2
3 B F 3
4 B G 1

Вывод теперь отображается в том формате, который мы хотели.

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

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

#display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

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

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

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

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

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