Вы можете использовать следующие методы для группировки строк 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: как рассчитать корреляцию по группе