Pandas dataframe groupby 逆序求和字符串

Pandas dataframe groupby sum strings in reverse order

我有一个这样的 DataFrame:

colA    colB 
1       aaa
1       rrr
1       www
2       bbb
2       ccc
2       sss
...

我想按如下方式转换DataFrame

colA    Sum
1       wwwrrraaa
2       ssscccbbb
...

我试过了

df.groupby(['colA'])['colB'].sum().reset_index()

但字符串的总和是相反的。有没有一种优雅的方法可以做到这一点?

反转DataFrame;然后 groupby + sum:

out = df[::-1].groupby('colA', as_index=False)['colB'].sum()

输出:

   colA       colB
0     1  wwwrrraaa
1     2  ssscccbbb

不要使用求和来连接字符串。它看起来很花哨,但它是二次方的,应该被认为是不好的做法。在 python 中使用函数 join

df = df[::-1].groupby('colA')['colB'].agg(''.join).reset_index()