如何在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
相关产品推荐
相关产品推荐

