我将如何使用熊猫来计算与月平均降雨量值的累积偏差?
我得到了每日降雨量数据(例如下面的s),我可以将其转换为pd. Series并重新取样为月度周期(sum;例如下面的sm)。但是我想计算每个月值与该月平均值之间的差异。我添加了一个合成示例:
rng = pd.period_range(20010101, 20131231, freq='D')
s = pd.Series(np.random.normal(2.5,2,size=len(rng)), index=rng)
sm = s.resample('M', how='sum')
例如,对于2010年1月,我想计算该月的值与1月的平均月降雨量(在很长一段时间内)之间的差异。然后我想要该差异的累积总和。
我尝试使用groupby函数:
sm.groupby(lambda x: x.month).mean()
但没有成功。我希望“sm”中的每个月值都减去所有类似月份的平均值,然后创建该系列的累积总和。我猜这可能是一步到位。
我如何才能有效地实现这一点?
谢谢
这与文档中的一个示例密切相关。这是未经测试的代码,但您需要如下内容:
monthly_rainfall = daily_rainfall.resample('D', how=np.sum)
把所有的一月放在一起(每个月依此类推):
grouped = monthly_rainfall.groupby(lambda x: x.month)
然后呢
deviation = grouped.transform(lambda x: x - x.mean())
deviation.cumsum()