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

Numpy datetime64[D]数组转Polars日期序列的问题及解决办法

更新说明: pl.Series(datetime_array) 现在可按预期生成date类型。


将Numpy datetime数组转换为Polars Series时会变成object类型,但数值或字符串数组转换为pl.Series时能保持正确格式。这是使用有误还是存在bug?

输入:

datetime_array = np.array(['2022-02-11', '2022-02-11', '2022-02-11','2022-02-10','2022-02-11', '2022-02-11'], dtype='datetime64[D]')

输出:

array(['2022-02-11', '2022-02-11', '2022-02-11', '2022-02-10',
       '2022-02-11', '2022-02-11'], dtype='datetime64[D]')

转换为序列:

输入:

pl.Series(datetime_array)

输出:

shape: (6,)
Series: '' [o][object]
[
    2022-02-11
    2022-02-11
    2022-02-11
    2022-02-10
    2022-02-11
    2022-02-11
]

若尝试指定序列的dtype为pl.Date,会抛出如下异常:

输入:

pl.Series(datetime_array, dtype=pl.Date)

输出:

InvalidOperationError: cannot cast array of type ObjectChunked to arrow datatype

解决方法

先将Numpy datetime数组转换为字符串类型,再转换为Polars序列,之后使用Polars的.str.to_date()方法转换为date类型。

输入:

pl.Series(np.datetime_as_string(datetime_array)).str.to_date()

输出:

shape: (6,)
Series: '' [date]
[
    2022-02-11
    2022-02-11
    2022-02-11
    2022-02-10
    2022-02-11
    2022-02-11
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:10:35