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

使用Polars官方示例代码遇ImportError:需安装pyarrow处理日期类型

解决Polars中"ImportError: 'pyarrow' is required for converting a Sequence of date or datetime values to a PySeries"报错

问题重现

运行Polars用户指南中的示例代码时触发如下报错:

ImportError: 'pyarrow' is required for converting a Sequence of date or datetime values to a PySeries

示例代码:

import polars as pl

# to enrich the examples in this quickstart with dates
from datetime import datetime, timedelta 
# to generate data for the examples
import numpy as np 

dataframe = pl.DataFrame({"integer": [1, 2, 3], 
                          "date": [
                              (datetime(2022, 1, 1)), 
                              (datetime(2022, 1, 2)), 
                              (datetime(2022, 1, 3))
                          ], 
                          "float":[4.0, 5.0, 6.0]})
dataframe

解决方案

方案1:安装pyarrow依赖

直接通过包管理工具安装pyarrow即可解决类型转换的依赖问题:

  • 使用pip安装:
pip install pyarrow
  • 使用conda安装(conda环境下):
conda install pyarrow -c conda-forge

方案2:不依赖pyarrow,改用numpy datetime64类型

如果你不想引入pyarrow依赖,可以将Python原生datetime对象组成的序列转换为numpy的datetime64[ns]类型,Polars可以直接处理这种类型的数据,无需额外依赖。修改后的代码如下:

import polars as pl
from datetime import datetime, timedelta 
import numpy as np 

dataframe = pl.DataFrame(
    {
        "integer": [1, 2, 3], 
        "date": np.array(
            [datetime(2022, 1, 1), datetime(2022, 1, 2), datetime(2022, 1, 3)],
            dtype="datetime64[ns]"
        ), 
        "float": [4.0, 5.0, 6.0]
    }
)
print(dataframe)

原因说明

Polars在处理Python原生datetime对象构成的序列时,需要借助pyarrow完成从Python对象到Polars内部PySeries的类型转换;而numpy的datetime64类型与Polars的日期类型兼容度更高,可以直接被解析处理,因此不需要pyarrow依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:45:29