Python Polars:向日期添加月份的优雅方式?

问题描述 投票:0回答:2

我需要在Polars中进行一个非常简单的操作,但是我找到的文档和示例非常复杂。我只是有一个日期,我想创建一个从下个月的第一天到十二个月后该月的第一天的范围。

我有个约会:
日期 = 2023-01-15

我想找到这两个日期:
范围_开始 = 2023-02-01
范围结束 = 2024-02-01

这在 Polars 中是如何完成的?

Python 中的日期时间

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)

极地?

# The format of my date
import polars as pl
my_date_pl = pl.lit(datetime.fromisoformat("2023-01-15"))
????
python datetime timedelta python-polars
2个回答
3
投票

您可以使用

dt.offset_by

例如

pl.select(pl.lit(datetime.fromisoformat("2023-01-15")).dt.offset_by("1mo")).item()

为了避免该错误,您可以在偏移量后添加“_saturating”后缀,如下所示...

pl.select(pl.lit(datetime.fromisoformat("2023-01-31")).dt.offset_by("1mo_saturating")).item()

如果下个月没有相同的日期,则会产生错误,例如 Jan 31 + 1 个月会出错。


2
投票

参见

date_range
eager=True
:

pl.from_dict({'date' : pl.date_range(start, end, eager=True)})
© www.soinside.com 2019 - 2024. All rights reserved.