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

如何使用pandas.date_range创建包含往年日期的DataFrame

实现方案

pandas的date_range方法的periods参数仅接受非负整数,用于指定生成的时间点数量,负数会触发参数校验报错,你可以用以下两种方案实现生成过往日期的需求:

  • 方案1:使用end参数替代start参数,直接向前生成指定数量的时间点
    如果你需要的是每年年末(12月31日)的日期序列,freq='Y'规则可以直接复用,代码如下:

    import pandas as pd
    # 生成从2021年往前5年的年末日期序列,默认按从早到晚排序
    df = pd.DataFrame({'Years': pd.date_range(end='2021-09-21', periods=5, freq='Y')})
    
    # 如果需要日期按从晚到早排序,对生成的序列反转即可
    df = pd.DataFrame({'Years': pd.date_range(end='2021-09-21', periods=5, freq='Y')[::-1]})
    
  • 方案2:基于基准日期手动做年偏移,适配同月同日的需求
    如果你需要生成的是和基准日期(2021-09-21)同月同日的历史日期序列,用DateOffset做偏移计算更灵活:

    import pandas as pd
    base_date = pd.to_datetime('2021-09-21')
    # 生成包含基准日期在内的5年同天日期序列,按从晚到早排序
    year_list = [base_date - pd.DateOffset(years=i) for i in range(5)]
    df = pd.DataFrame({'Years': year_list})
    

内容的提问来源于stack exchange,提问作者Anirban Nag 'tintinmj'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:36:03