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

为什么pd.date_range按天增量从年初起始,按年增量却返回年末日期

问题原因
  • pandas的freq参数有固定的频率别名规则:
    • Y(大小写通用)是*年末(YearEnd)*频率的别名,返回每个自然年的最后一天
    • M(大小写通用)是*月末(MonthEnd)*频率的别名,返回每个自然月的最后一天,你当前的输出是每月最后一天,说明实际传入的freq参数值为M而非Y
  • 你需求的每年首日对应频率别名为AS/YS,代表年初(YearStart),默认返回每年1月1日;如果需要每月首日,对应频率别名为MS(MonthStart)。
解决方案

修改生成Date列的代码即可:

# 生成每年首日的100个日期序列
randoms['Date'] = pd.date_range(start='1/1/1970', periods=n, freq='AS')

# 如果你的实际需求是生成每月首日,改为如下即可
# randoms['Date'] = pd.date_range(start='1/1/1970', periods=n, freq='MS')

修改后生成的日期序列会符合预期,按每年/每月首日递增。

内容的提问来源于stack exchange,提问作者Traer Morgan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:27:03