You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas生成跨两个年份的指定日期间的月度间隔日期序列

跨年度固定日期间隔序列生成方案

可直接运行的实现代码

循环实现(逻辑直观,无特殊日期兼容问题)

from pandas import Timestamp, DateOffset

start_ts = Timestamp('2021/11/02')
end_ts = Timestamp('2022/03/02')

starts = []
current_date = start_ts
while current_date < end_ts:
    starts.append(current_date)
    current_date += DateOffset(months=1)

# ends序列为starts每个元素加1个月
ends = [date + DateOffset(months=1) for date in starts]

向量化实现(适合大数据量场景)

import pandas as pd
from pandas import Timestamp

start_ts = Timestamp('2021/11/02')
end_ts = Timestamp('2022/03/02')

# 计算两个日期间的总月数差
month_diff = (end_ts.year - start_ts.year) * 12 + end_ts.month - start_ts.month
starts = pd.date_range(start=start_ts, periods=month_diff, freq='MS') + pd.DateOffset(days=start_ts.day -1)
ends = starts + pd.DateOffset(months=1)

原有代码问题说明

你之前的代码使用freq='M'(月末频率)生成日期,本身得到的是每月最后一天,再通过加减天数调整的方式,会受不同月份天数差异影响,逻辑不稳定;同时MonthEnd(2)的偏移逻辑不符合固定日生成的需求,所以无法得到预期结果。

内容的提问来源于stack exchange,提问作者Oscar Vardela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:36:03