【发布时间】:2020-09-09 05:49:33
【问题描述】:
我有一个如下的数据框:
'country_code', 'count_date', 'case_count'
CAN , 2020-09-01 , 1700000
CAN , 2020-08-31 , 1650000
... , .... , ....
SGP , .... , ....
... , .... , ....
USA , .... , ....
... , .... , ....
排序为:
df = df.sort_values(['country_code','count_date'], ascending=[True,False])
假设 f(x) 是日期 x 的 case_count,那么我需要计算:
(f(x) - f(x-7))/(f(x-8) - f(x-15)
每个国家代码
我可以如下计算连续日期之间的差异:
df['dailynew_cases'] = df.groupby('country_code')['case_count'].diff(-1)
但是如何计算7天(或n天)的增长率并将其保存在同一个DF中的另一列?
编辑#1: pct_change 函数与所需的输出不匹配。以下是 2020 年 8 月 29 日美国的值
case_count = [5867633.0, 5573695.0, 5529672.0, 5248806.0]
count_date = [datetime.date(2020, 8, 28), datetime.date(2020, 8, 21), datetime.date(2020, 8, 20), datetime.date(2020, 8, 14)]
期望的输出是(5867633.0-5573695.0)/(5529672.0-5248806.0) = 1.0465
但是 pct_change 给出 0.0518
【问题讨论】: