如何修改 groupby.cumcount() 来获取 Pandas 中的计数和出现次数

发布于 2025-01-18 20:17:41 字数 1350 浏览 1 评论 0原文

我正在尝试找到发生的情况,并在重复时添加发生。我尝试了groupby.cumcount,但是当有一个新值时,它不会增加。如果描述令人困惑,我需要如下提到的输出。

COL1COL2
012001
113002
214003
314003
414003
513002
615004
715004

I am trying to find the occurrence and add the occurrence if it is repeating. I tried groupby.cumcount but it doesn't increment when a new value is there. I need the output as mentioned below if the description is confusing.

col1col2
012001
113002
214003
314003
414003
513002
615004
715004

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

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

发布评论

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

评论(1

治碍 2025-01-25 20:17:41

您正在寻找 。它的每个组从0到groups-1。您可以将1添加到结果系列中,以便编号以1

df['col2'] = df.groupby('col1').ngroup().add(1)

输出启动:

>>> df

   col1
0  1200
1  1300
2  1400
3  1400
4  1400
5  1300
6  1500
7  1500

>>> df.groupby('col1').ngroup()

0    0
1    1
2    2
3    2
4    2
5    1
6    3
7    3
dtype: int64

>>> df.groupby('col1').ngroup().add(1)

0    1
1    2
2    3
3    3
4    3
5    2
6    4
7    4
dtype: int64

You are looking for Groupby.ngroup. It numbers each group from 0 to groups-1. You can add 1 to the resulting Series, so that the numbering starts at 1

df['col2'] = df.groupby('col1').ngroup().add(1)

Output:

>>> df

   col1
0  1200
1  1300
2  1400
3  1400
4  1400
5  1300
6  1500
7  1500

>>> df.groupby('col1').ngroup()

0    0
1    1
2    2
3    2
4    2
5    1
6    3
7    3
dtype: int64

>>> df.groupby('col1').ngroup().add(1)

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