pandas 如何计算panda列(DataFrame)中重复元素的出现次数?[重复]

xkftehaa  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(207)

此问题已在此处有答案

Reset pandas cumsum when the condition is not satisified(1个答案)
groupby cumsum (or cumcount) with cyclical data(2个答案)
groupby consecutive identical values in pandas dataframe and cumulative count of the number of occurences(2个答案)
17小时前关闭
我想枚举一个事件连续发生了多少次,如果它中断了,计数将从头开始,例如输入日期和事件,计数应该是:

| Date | event| Count |
| ---- | -----| ----- | 
| 1    |  A   |   1   |   
| 2    |  A   |   2   |
| 3    |  B   |   1   |
| 4    |  A   |   1   |
| 5    |  B   |   1   |
| 6    |  B   |   2   |
| 7    |  B   |   3   |
| 8    |  A   |   1   |
| 9    |  A   |   2   |

有谁知道怎么解决这个问题吗?谢谢
我尝试了rank函数,但它将继续计算前一次事件再次发生时的次数。

l7wslrjt

l7wslrjt1#

您可以通过将该值与列中的前一个值进行比较来生成每个event的组:

groups = (df['event'] != df['event'].shift()).cumsum()

输出:
然后,您可以groupby这些groups,并采取每组的cumulative count,加上1,使Count值从1开始:

df['Count'] = df.groupby(groups).cumcount()+1

输出:

Date event  Count
0    1     A      1
1    2     A      2
2    3     B      1
3    4     A      1
4    5     B      1
5    6     B      2
6    7     B      3
7    8     A      1
8    9     A      2

相关问题