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

如何在Polars中选择datetime类型的列?

在Polars中选择datetime类型列的正确方法

要选择Polars DataFrame中的datetime类型列,你需要使用Polars内置的pl.Datetime类型,而非Python标准库的dt.datetime。

原因

Polars有一套独立的类型系统,用于定义DataFrame列的数据类型,和Python原生类型不通用。你之前用dt.datetime报错,就是因为Polars无法将Python的datetime类型对象识别为列选择的有效类型参数。

示例代码

import polars as pl
import datetime as dt

df_trades = pl.DataFrame(
    {
        "time": [
            dt.datetime(2020, 1, 1, 9, 1, 0),
            dt.datetime(2020, 1, 1, 9, 1, 0),
            dt.datetime(2020, 1, 1, 9, 3, 0),
            dt.datetime(2020, 1, 1, 9, 6, 0),
        ],
        "stock": ["A", "B", "B", "C"],
        "trade": [101, 299, 301, 500],
    }
)

# 选择所有datetime类型列
datetime_columns = df_trades.select(pl.col(pl.Datetime))
print(datetime_columns)

输出结果

┌─────────────────────┐
│ time                │
│ ---                 │
│ datetime[μs]        │
├─────────────────────┤
│ 2020-01-01 09:01:00 │
│ 2020-01-01 09:01:00 │
│ 2020-01-01 09:03:00 │
│ 2020-01-01 09:06:00 │
└─────────────────────┘

进阶:指定时间单位

如果需要匹配特定时间单位的datetime列,可以在pl.Datetime中指定time_unit参数,比如匹配微秒单位的datetime列:

df_trades.select(pl.col(pl.Datetime(time_unit="μs")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:25:22