如何生成连续年月整数序列?Pandas时间序列预测中的ds变量需求
生成连续跨年的年月整数序列(Pandas实现)
你的问题核心是手动递增数字无法处理12月到次年1月的转换,正确做法是借助Pandas的日期处理能力自动处理跨年逻辑,步骤如下:
将初始整数日期转为标准日期类型
把202108这类整数转成Pandas可识别的日期对象,指定格式为%Y%m(年+月)。生成后续连续月份的日期序列
使用pd.date_range生成指定数量的月份,freq='MS'表示以每月第一天为周期,确保序列严格按月份递增,自动处理跨年。将日期序列转回整数格式
把生成的日期格式化为%Y%m字符串后转成整数,得到目标ds格式。
完整代码示例:
import pandas as pd # 初始年月整数 start_ds = 202108 # 转成Pandas日期对象 start_date = pd.to_datetime(str(start_ds), format='%Y%m') # 生成起始日期之后的25个连续月份(periods=26包含起始月,[1:]取后续25个) future_dates = pd.date_range(start=start_date, periods=26, freq='MS')[1:] # 转成目标整数格式 future_ds = future_dates.strftime('%Y%m').astype(int) # 生成预测并赋值ds列 aux = mlf.predict(25) aux['ds'] = future_ds
关键说明
periods=26是因为pd.date_range会包含起始日期本身,加1后取[1:]刚好得到起始日期之后的25个连续月份。freq='MS'确保每次递增一个自然月,自动处理202112之后转为202201的场景,无需手动判断月份边界。
内容的提问来源于stack exchange,提问作者Ramiro Guzmán
相关产品推荐
相关产品推荐

