为什么使用df.resample()进行重采样时会改变原日期索引?
问题原因
- 频率参数规则不符:你使用的
'12M'代表12个月末偏移量,生成的采样节点天然为每月最后一天,和原数据的月度首日索引规则不匹配。 - resample默认参数逻辑:
resample默认采用label='right'配置,即采样后使用统计区间的右边界作为新索引的标签,进一步导致输出索引偏离预期的7月1日格式。
解决方案
使用锚定每年7月1日的年度起始频率'AS-JUL'替代'12M',该频率会直接将每年7月1日作为采样节点,完全匹配原数据的索引规则,可直接实现插入2014-07-01空值行的需求。
修改后的代码如下:
X.resample('AS-JUL').last()
如果需要显式控制区间闭合规则和标签生成逻辑避免歧义,也可以显式指定参数:
X.resample('AS-JUL', label='left', closed='left').last()
内容的提问来源于stack exchange,提问作者Mose Wintner
相关产品推荐
相关产品推荐

