Python 计算groupby中计数器递增的次数

Python 计算groupby中计数器递增的次数,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来像: df = pd.DataFrame(data={'id':[1234, 1234, 1234, 1234, 1234], 'year':['2017', '2017', '2018', '2018', '2018'], 'count_to_today':[1, 2, 3, 3, 4}) 我需要计算每个id每年累计发生多少次。i、 e counts = pd.DataFrame(data={'id':[1234, 1234, 1234, 1234, 1234],

我有一个熊猫数据框,看起来像:

df = pd.DataFrame(data={'id':[1234, 1234, 1234, 1234, 1234], 'year':['2017', '2017', '2018', '2018', '2018'], 'count_to_today':[1, 2, 3, 3, 4})
我需要计算每个id每年累计发生多少次。i、 e

counts = pd.DataFrame(data={'id':[1234, 1234, 1234, 1234, 1234], 'year':['2017', '2017', '2018', '2018', '2018'], 'count_to_today':[1, 2, 1, 1, 2]})
也就是说,我从一开始就有一个连续的计数,我想计算它每年累计增加的次数


我对怎么做有点困惑。我知道我需要按
id
year
进行分组,但我不知道如何获取
.count()
.value\u counts()
来提供每年的计数。

与您前面的问题类似,但使用
累计数

df.count_to_today.diff().ne(0).groupby([df.id, df.year]).cumsum()

0    1.0
1    2.0
2    1.0
3    1.0
4    2.0
Name: count_to_today, dtype: float64


以前没有问过同样的问题吗?没有-我意识到我在输出规范中犯了一个错误。我不断收到通知,告诉我在接受答案之前等待。@TomKealy您可以在提问15分钟后接受答案。谢谢!很抱歉,我在输出示例中犯了一个错误,当人们回答了问题后,我不知道该怎么办。
df['count_to_today'] = (
    df.count_to_today.diff().ne(0).groupby([df.id, df.year]).cumsum().astype(int))
df

     id  year  count_to_today
0  1234  2017               1
1  1234  2017               2
2  1234  2018               1
3  1234  2018               1
4  1234  2018               2