Python-在pandas groupby中将列表中的行分组

我有一个像这样的熊猫数据框:

a b

A 1

A 2

B 5

B 5

B 4

C 6

我想按第一列分组并获得第二列作为行中的列表:

A [1,2]

B [5,5,4]

C [6]

可以使用pandas groupby来做类似的事情吗?

回答:

你可以使用以下方法groupby对感兴趣的列进行分组,然后apply list对每个分组进行分组:

In [1]: df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})

df

Out[1]:

a b

0 A 1

1 A 2

2 B 5

3 B 5

4 B 4

5 C 6

In [2]: df.groupby('a')['b'].apply(list)

Out[2]:

a

A [1, 2]

B [5, 5, 4]

C [6]

Name: b, dtype: object

In [3]: df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')

df1

Out[3]:

a new

0 A [1, 2]

1 B [5, 5, 4]

2 C [6]

以上是 Python-在pandas groupby中将列表中的行分组 的全部内容, 来源链接: utcz.com/qa/416481.html

回到顶部