【发布时间】:2021-05-19 22:34:58
【问题描述】:
我有一个如下所示的数据集:
country date_added
0 United States 01/2013
1 United Kingdom 03/2014
2 Egypt 03/2014
3 United States 03/2014
4 United States 03/2014
5 United Kingdom 06/2015
6 United States 06/2015
我想按日期计算每个国家/地区的累计总数,即:
date_added country cumulative_count
0 01/2013 United States 1
1 03/2014 United Kingdom 1
2 03/2014 Egypt 1
3 03/2014 United States 2
4 06/2015 United Kingdom 2
5 06/2015 United States 4
我尝试了grouping by two levels,但 .count() 不起作用(计数根本不显示)而 .size() 起作用:
cumulative_by_date = new_df.groupby(['date_added','country']).size()
我不知道如何将this question's solution 与 .size() 一起应用以获得累积总和。
【问题讨论】:
-
不幸的是,它没有,因为 .size() 是按时间段而不是 .count() 给我的总计数。为清楚起见,更新了问题并进行了编辑。
-
new_df.groupby(['date_added', 'country']).size().groupby(level=1).cumsum().reset_index(name='cumulative_count')' -
谢谢,这确实有效。第二个 groupby(即 groupby(level=1))是做什么的?我认为这两个级别都将分组在第一个 .groupby()
-
我认为第二个链接问题中的解释/演练很有帮助。
-
美国 3/24 的计数看起来不正确。它应该是 2 而不是 3
标签: python pandas count pandas-groupby cumulative-sum