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