如何在Polars中创建指定周期数的date_range(类Pandas的periods参数)
在Polars中实现Pandas的periods参数创建日期范围的方法
在Pandas中,我们常用periods参数快速生成指定长度的日期范围:
import pandas as pd pd.date_range(start='1/1/2018', periods=8)
输出:
DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04', '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08'], dtype='datetime64[ns]', freq='D')
Polars的pl.date_range确实没有periods参数,但有两种简便的替代方式:
方法一:计算结束日期
通过将起始日期加上periods-1个时间单位,得到结束日期后传入pl.date_range:
import polars as pl start = '1/1/2018' periods = 8 # 计算结束日期:起始日期 + (周期数-1)天 end = pl.lit(start).str.to_date() + pl.duration(days=periods-1) date_range = pl.date_range(start=start, end=end) print(date_range)
输出:
shape: (8,) Series: '' [datetime[μs]] [ 2018-01-01 2018-01-02 2018-01-03 2018-01-04 2018-01-05 2018-01-06 2018-01-07 2018-01-08 ]
方法二:使用limit直接截取(更简便)
pl.date_range如果不指定end参数,会默认按指定间隔无限生成日期,直接用limit()截取需要的数量即可:
import polars as pl date_range = pl.date_range(start='1/1/2018', interval='1d').limit(8) print(date_range)
这个方法和Pandas的periods用法逻辑完全一致,代码更简洁,是推荐的做法。
内容的提问来源于stack exchange,提问作者Andi
相关产品推荐
相关产品推荐

