Pandas: как сгруппировать строки в список с помощью GroupBy


Вы можете использовать следующие методы для группировки строк DataFrame в список с помощью GroupBy в pandas:

Способ 1: сгруппировать строки в список для одного столбца

df.groupby('group_var')['values_var']. agg( list ). reset_index(name='values_var')

Способ 2: сгруппировать строки в список для нескольких столбцов

df.groupby('team').agg(list)

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

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
 'points': [10, 10, 12, 15, 19, 23, 20, 20, 26],
 'assists': [6, 8, 9, 11, 13, 8, 8, 15, 10]})

#view DataFrame
print(df)

 team points assists
0 A 10 6
1 A 10 8
2 A 12 9
3 A 15 11
4 B 19 13
5 B 23 8
6 C 20 8
7 C 20 15
8 C 26 10

Пример 1: сгруппировать строки в список для одного столбца

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

#group points values into list by team
df.groupby('team')['points']. agg( list ). reset_index(name='points')

 team points
0 A [10, 10, 12, 15]
1 B [19, 23]
2 C [20, 20, 26]

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

Пример 2: Группировка строк в список для нескольких столбцов

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

#group points and assists values into lists by team
df.groupby('team').agg( list )

 points assists
team 
A [10, 10, 12, 15] [6, 8, 9, 11]
B [19, 23] [13, 8]
C [20, 20, 26] [8, 15, 10]

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

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

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

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

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

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