pandas小时级重采样索引加DateOffset报频率不匹配错误如何解决?
问题原因
报错是因为当前dfw的DatetimeIndex显式设置了freq='H'的固定频率属性。当你直接对带固定频率的DatetimeIndex执行pd.DateOffset月份偏移运算时,Pandas会自动尝试为运算后的新时间序列保留原频率校验,但月份偏移会受不同月份天数、闰年等因素影响,无法保证偏移后的所有时间点仍然严格满足1小时间隔的频率规则,因此触发频率不匹配的报错。
解决方案
直接将索引转为普通时间序列再执行偏移运算即可避开频率校验,不会影响原DataFrame的索引属性,示例代码如下:
# 方法1:将索引转为Series后运算,最简便 dfw['pretend_winter'] = dfw.index.to_series() + pd.DateOffset(months=9) # 方法2:临时移除索引的freq属性,运算后可按需恢复 dfw.index = dfw.index._with_freq(None) dfw['pretend_winter'] = dfw.index + pd.DateOffset(months=9) # 如后续仍需要索引保持H频率,可加一行恢复 dfw.index.freq = 'H'
内容的提问来源于stack exchange,提问作者JudyD
相关产品推荐
相关产品推荐

