我在Pandas
DataFrame
中有一个时间序列,其中一列包含模型预测中的每日残差。我想找到月平均值,并从每个模型预测中减去这个月平均值。我可以使用.groupby
和.resample
的某种组合对此进行编码吗?
monthly_res = sve_DOC['sRes'].resample('M', how='mean')
sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - monthly_res
我可以得到月平均值,但我不知道如何确保每日模型预测都使用正确的月平均值。
答案 0 :(得分:1)
您可以使用transform:
g = sve_DOC['sRes'].groupby(pd.TimeGrouper('M'))
g.transform('mean')
sve_DOC['RIMsDOC2'] = sve_DOC['RIMsDOC'] - g.transform('mean')
注意:你必须使用TimeGrouper来分组几个月(就像重新采样一样)。