如何在Python Polars中生成仅包含月末日期的日期范围?
如何在Polars(Python API)中生成仅包含月末日期的日期范围?
你可以通过两种方式实现和Pandas freq='M' 类似的月末日期范围生成:
方法1:利用dt.month_end()转换日期
先生成基础的月度日期范围,再将每个日期转换为对应月份的月末,最后过滤掉超出结束日期的项:
from datetime import datetime import polars as pl result = ( pl.date_range(datetime(2022,5,5), datetime(2022,8,10), "1mo", name="dtrange") .dt.month_end() .filter(pl.col("dtrange") <= datetime(2022,8,10)) )
运行后输出:
shape: (3,) Series: 'dtrange' [date] [ 2022-05-31 2022-06-30 2022-07-31 ]
方法2:直接使用月末频率"ME"
Polars支持"ME"(Month End)作为频率参数,直接生成符合要求的月末日期范围,和Pandas的freq='M'行为一致:
from datetime import datetime import polars as pl result = pl.date_range(datetime(2022,5,5), datetime(2022,8,10), freq="ME", name="dtrange")
这段代码会直接输出你期望的月末日期列表,无需额外转换或过滤。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

