Pandas groupby,如何对多列进行多重聚合?

Man*_*r.M 2 group-by dataframe python-3.x pandas

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

    Product    occasion    count
1    cake       wedding     2
2    chairs     funeral     3
3    chairs     wedding     2
Run Code Online (Sandbox Code Playgroud)

我想对列求和并通过 |count连接列 occasion同时按产品对数据框进行分组以获得如下所示的数据框:

    Product    occasion          count
1   cake       wedding           2
2   chairs     wedding|funeral   5
Run Code Online (Sandbox Code Playgroud)

现在我正在使用两个 groupby 并加入生成的数据帧。有没有办法一次性做到这一点?我尝试了多个聚合,但无法在两列上得到正确的结果。谢谢。

ans*_*sev 5

使用GroupBy.agg

df2=df.groupby('Product',as_index = False).agg({'occasion':'|'.join,'count':'sum'})
print(df2)
#  Product         occasion  count
#0    cake          wedding      2
#1  chairs  funeral|wedding      5
Run Code Online (Sandbox Code Playgroud)