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

如何在Polars中为日期添加月份并生成指定日期范围?

在Polars中生成指定日期的下月首日及12个月后首日

需求说明

给定日期2023-01-15,需要生成两个目标日期:

  • range_start:下月首日(即2023-02-01)
  • range_end:range_start之后12个月的首日(即2024-02-01)

Python datetime实现(参考)

from datetime import datetime
from dateutil import relativedelta
my_date = datetime.fromisoformat("2023-01-15")
start = my_date.replace(day=1) + relativedelta.relativedelta(months=1)
end = start + relativedelta.relativedelta(months=12)

Polars实现方案

Polars通过dt命名空间提供日期时间操作方法,逻辑与datetime版本对齐,写法更简洁:

import polars as pl
from datetime import datetime

# 定义初始日期
my_date_pl = pl.lit(datetime.fromisoformat("2023-01-15"))

# 生成下月首日:先将日期调整到当月1号,再偏移1个月
range_start = my_date_pl.dt.replace(day=1).dt.offset_by("1mo")

# 生成12个月后的首日:基于range_start偏移12个月
range_end = range_start.dt.offset_by("12mo")

# 查看结果
print("range_start:", range_start.item())
print("range_end:", range_end.item())

代码解释

  • dt.replace(day=1):将原日期的日部分替换为当月1号
  • dt.offset_by("1mo"):对日期进行月份偏移,1mo代表1个月,12mo代表12个月,Polars会自动处理不同月份的天数差异(如2月的特殊情况)
  • .item():从Polars的Literal对象中提取Python datetime格式的结果值,方便直接查看

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:39:58