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

如何在Polars中基于datetime字符串列创建weekofyear等衍生列?

解决Polars中从datetime字符串提取时间字段的问题

错误原因

你使用%Y作为str.to_datetime()的格式参数,但starttime列是完整的ISO格式datetime字符串(如2022-02-10 09:32:20),%Y仅匹配年份部分,无法解析完整的datetime结构,导致转换失败。

正确实现方式

Polars可以自动识别标准ISO格式的datetime字符串,无需手动指定格式。先将字符串转换为datetime类型,再通过dt命名空间提取所需的时间字段:

方式1:直接一次性提取所有字段

import polars as pl

df = pl.from_repr("""
┌─────────────────────┬─────────────────────┬────────────┬───────────┬─────────┐
│ starttime           ┆ endtime             ┆ storageid  ┆ volume_id ┆ avgiops │
│ ---                 ┆ ---                 ┆ ---        ┆ ---       ┆ ---     │
│ str                 ┆ str                 ┆ str        ┆ str       ┆ i64     │
╞═════════════════════╪═════════════════════╪════════════╪═══════════╪═════════╡
│ 2022-02-10 09:32:20 ┆ 2022-02-10 09:34:28 ┆ TUNYKYPG72 ┆ 4c8d6c31  ┆ 27      │
│ 2022-02-10 10:34:10 ┆ 2022-02-10 10:35:12 ┆ TUNYKYPG42 ┆ 4c8d6d31  ┆ 34      │
└─────────────────────┴─────────────────────┴────────────┴───────────┴─────────┘
""")

# 提取year、month、dayofweek、weekofyear列
df = df.with_columns(
    pl.col('starttime').str.to_datetime().dt.year().alias('year'),
    pl.col('starttime').str.to_datetime().dt.month().alias('month'),
    pl.col('starttime').str.to_datetime().dt.day_of_week().alias('dayofweek'),
    pl.col('starttime').str.to_datetime().dt.week().alias('weekofyear')
)

print(df)

方式2:先转换一次datetime列,再复用提取(更高效)

避免重复转换字符串,先生成一个datetime类型的中间列,再基于它提取字段:

df = df.with_columns(
    start_datetime = pl.col('starttime').str.to_datetime()
).with_columns(
    year = pl.col('start_datetime').dt.year(),
    month = pl.col('start_datetime').dt.month(),
    dayofweek = pl.col('start_datetime').dt.day_of_week(),
    weekofyear = pl.col('start_datetime').dt.week()
)

字段说明

  • dt.year():提取年份(如2022)
  • dt.month():提取月份(1-12)
  • dt.day_of_week():提取星期几,默认遵循ISO标准(0=周一,6=周日),若需周日为0,可指定参数dt.day_of_week(week_start=7)
  • dt.week():提取ISO周数(一年中第几个周,第一周需包含至少4天)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:35:21