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
相关产品推荐
相关产品推荐

