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

Python使用relativedelta减1个月结果不符合预期如何解决

问题原因

你使用了错误的relativedelta参数:

  • 单数形式的month是绝对赋值参数,作用是直接将日期的月份修改为传入的数值,你传入month=1,所以原日期2021-08-16的月份会被直接修改为1月,最终得到2021-01-16的错误结果。
  • 复数形式的months才是相对偏移参数,作用是在原有日期的基础上增减指定的月份数,符合你减1个月的需求。
修正代码

将参数month改为months即可:

print('the max date : ' , all_data['DT_ANO'].max())
dt_start = all_data['DT_ANO'].max() - relativedelta(months = 1)
print('dt_start : ' , dt_start)
运行效果

修正后输出与预期一致:

the max date :  2021-08-16 00:00:00
dt_start :  2021-07-16 00:00:00 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:24:08