Pandas 数据框 groupby 按相反顺序求和字符串

发布于 2025-01-12 22:10:10 字数 369 浏览 0 评论 0原文

我有一个像这样的 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()

,但字符串的总和被颠倒了。有没有一种优雅的方法来做到这一点?

I have a DataFrame like this:

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

I would like to convert the DataFrame as follows

colA    Sum
1       wwwrrraaa
2       ssscccbbb
...

I tried

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

but the sum of strings are reversed. Is there an elegant way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

要走就滚别墨迹 2025-01-19 22:10:10

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

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

Don't use sum to concatenate strings. It looks fancy but it's quadratic and should be considered bad practice. In python is use function join

df = df[::-1].groupby('colA')['colB'].agg(''.join).reset_index()
一身软味 2025-01-19 22:10:10

反转数据帧;然后groupby + sum

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

输出:

   colA       colB
0     1  wwwrrraaa
1     2  ssscccbbb

Reverse the DataFrame; then groupby + sum:

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

Output:

   colA       colB
0     1  wwwrrraaa
1     2  ssscccbbb
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文