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

如何在Polars中基于两个日期时间列创建时间差(delta)列?

解决Polars日期列相减获取天数差的问题

你的代码直接相减日期列得到的是Duration类型(格式类似366d),如果要得到纯数字的天数,需要对相减结果调用.dt.days()方法提取天数数值。

修改后的代码如下:

(pl.from_records([{'start': '2021-01-01', 'end': '2022-01-01'}])
 .with_columns(pl.col(['start', 'end']).str.to_date('%Y-%m-%d'))
 .with_columns(delta = (pl.col('end') - pl.col('start')).dt.days())
)

执行后delta列会返回整数类型的天数差(这里结果为366,因为2021到2022年包含2月29日)。

另外提供两种等效写法供你选择:

  • 直接使用Polars内置的dt.diff_days函数:
    .with_columns(delta = pl.col('end').dt.diff_days(pl.col('start')))
    
  • 对Duration类型调用.dt.total_days()(效果和.days()一致):
    .with_columns(delta = (pl.col('end') - pl.col('start')).dt.total_days())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:32:00