我在NYT covid 数据集中乱搞,该数据集每天都有每个县的 covid 病例总数。
我想找出每天的病例差异,所以理论上我可以得到每天的新病例数,而不是总病例数。采用滚动平均值,或使用平均值/总和/等每 2 天重新采样一次都可以正常工作。只是减去这让我很头疼。
试过的方法:
df.resample('2d').diff()
-
'DatetimeIndexResampler' 对象没有属性 'diff'
-
df.resample('1d').agg(np.subtract)
-
ufunc() 缺少 2 个必需的位置参数中的 1 个
-
df.rolling(2).diff()
-
“滚动”对象没有属性“差异”
-
df.rolling('2').agg(np.subtract)
-
ufunc() 缺少 2 个必需的位置参数中的 1 个
-
样本数据:
pd.DataFrame(data={'state':['Alabama','Alabama','Alabama','Alabama','Alabama'],
'date':[dt.date(2020,3,13),dt.date(2020,3,14),dt.date(2020,3,15),dt.date(2020,3,16),dt.date(2020,3,17)],
'covid_cases':[1.2,2.0,2.9,3.6,3.9]
})
所需的样本输出:
pd.DataFrame(data={'state':['Alabama','Alabama','Alabama','Alabama','Alabama'],
'date':[dt.date(2020,3,13),dt.date(2020,3,14),dt.date(2020,3,15),dt.date(2020,3,16),dt.date(2020,3,17)],
'new_covid_cases':[np.nan,0.8,0.9,0.7,0.3]
})
从原始 NYT 数据集重新创建样本数据:
df = pd.read_csv('https://raw.githubusercontent.com/nytimes/covid-19-data/master/us-counties.csv',parse_dates=['date'])
df.groupby(['state','date'])[['cases']].mean().reset_index()
任何帮助将不胜感激!想学习如何手动/通过函数执行此操作,而不是查找“新案例”数据集,因为我将在不久的将来大量使用时间序列。