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

时间:2014-06-11 19:10:45

标签: python-2.7 pandas

我在Pandas DataFrame中有一个时间序列,其中一列包含模型预测中的每日残差。我想找到月平均值,并从每个模型预测中减去这个月平均值。我可以使用.groupby.resample的某种组合对此进行编码吗?

monthly_res = sve_DOC['sRes'].resample('M', how='mean')
sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - monthly_res

我可以得到月平均值,但我不知道如何确保每日模型预测都使用正确的月平均值。

1 个答案:

答案 0 :(得分:1)

您可以使用transform

g = sve_DOC['sRes'].groupby(pd.TimeGrouper('M'))
g.transform('mean')

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

注意:你必须使用TimeGrouper来分组几个月(就像重新采样一样)。