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

如何在Polars中直接通过年、月、日列构造日期列?

直接从年/月/日列构造Polars日期列

我有如下Polars DataFrame:

import polars as pl
df = pl.DataFrame({'year': [2023], 'month': [2], 'day': [1]})

需要从year、month和day三列构造一个日期列。目前我知道可以通过拼接字符串再解析的方式实现:

df.with_column(
    pl.concat_str([pl.col('year'), pl.col('month'), pl.col('day')], sep='-')
    .str.strptime(pl.Date).alias('date')
)

但这种方式太绕了,有没有办法直接用这三列构造日期列?比如类似下面这种(无法生效的)写法:

import datetime
df.with_column(
    datetime.date(pl.col('year'), pl.col('month'), pl.col('day')).alias('date')
)

当然有更直接的方法,Polars内置了pl.date()矢量化函数,可以直接接收年、月、日的列来生成日期列,无需转字符串。

正确写法如下:

# 基础写法
df.with_column(
    pl.date(pl.col('year'), pl.col('month'), pl.col('day')).alias('date')
)

如果使用Polars 0.18及以上版本,还支持更直观的关键字参数写法:

# 关键字参数写法
df.with_column(
    pl.date(year='year', month='month', day='day').alias('date')
)

这个方法比字符串拼接解析更高效,逻辑也更直接,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:20:41