Python 2.7 使用.groupby和.resample对数据帧执行操作

Python 2.7 使用.groupby和.resample对数据帧执行操作,python-2.7,pandas,Python 2.7,Pandas,我有一个时间序列在一个数据框中,其中一列包含模型预测的每日残差。我想找出月平均值,然后从每天的模型预测中减去这个月平均值。我是否可以使用.groupby和.resample组合来编写此代码 monthly_res = sve_DOC['sRes'].resample('M', how='mean') sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - monthly_res 我可以得到月平均值,但我不知道如何确保在每个每日模型预测中使用正确的月平均值。您可以使

我有一个时间序列在一个数据框中,其中一列包含模型预测的每日残差。我想找出月平均值,然后从每天的模型预测中减去这个月平均值。我是否可以使用
.groupby
.resample
组合来编写此代码

monthly_res = sve_DOC['sRes'].resample('M', how='mean')
sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - monthly_res
我可以得到月平均值,但我不知道如何确保在每个每日模型预测中使用正确的月平均值。

您可以使用:


注意:您必须使用TimeGrouper按月份分组(就像在重采样中一样)。

我有一个后续问题。是否可以按“绝对”月份对
.groupby
pd.TimeGrouper
进行重新采样,这意味着如果数据集跨越多年,它将减少到12行(每个月一行)。还是编写函数来检查月份字段的唯一方法?@Bprodz我想我应该只做
.groupby(df.index.month)
我不知道为什么,但不管我通过序列还是df,它似乎都不起作用
print test.groupby(test.index.month).head()
不会影响数据,尽管不会发生错误,
print test.index.month
返回一个月数列表。我是否遗漏了一些明显的东西?我不认为头(head)做了你认为它做的事情:(尝试做某种聚合)。注意:这可能是另一个问题!天哪,你说得对-谢谢链接。我开始问另一个问题,你是否有进一步的评论?
g = sve_DOC['sRes'].groupby(pd.TimeGrouper('M'))
g.transform('mean')

sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - g.transform('mean')