无法在polls python中将字符串类型转换为仅日期类型格式

问题描述 投票:0回答:1

我试图从dates中仅

string datetime column
中提取
,但无法获得正确的结果。我不确定,但是日期中的一位数字格式会产生问题吗?

数据:

import polars as pl df = pl.from_repr(""" ┌──────┬──────────────────────┐ │ YEAR ┆ FL_DATE │ │ --- ┆ --- │ │ i64 ┆ str │ ╞══════╪══════════════════════╡ │ 2023 ┆ 1/1/2023 12:00:00 AM │ │ 2023 ┆ 1/1/2023 12:00:00 AM │ │ 2023 ┆ 1/1/2023 12:00:00 AM │ └──────┴──────────────────────┘ """)
失败的尝试:

#1 df.select( pl.col('FL_DATE').alias('date_only').str.to_date("%m/%d/%Y") ) #2 df.select( pl.col('FL_DATE').alias('date_only').str.to_date("%m/%d/%Y").dt.to_string("%Y-%m") ) #3 df.select( pl.col('FL_DATE').alias('date_only').str.to_datetime("%m/%d/%Y",strict=False).cast(pl.Date) ) #4 df.select( pl.col('FL_DATE').cast(pl.String).str.to_datetime("%m/%d/%Y",strict=False ).cast(pl.Date).alias('date_only') )
输出失败:

1. InvalidOperationError: conversion from `str` to `date` failed in column 'date_only' 2. InvalidOperationError: conversion from `str` to `date` failed in column 'date_only' 3. null 4. null
    
python-polars
1个回答
0
投票
您提供的格式与您的数据不匹配 - 您缺少时间戳。

您还可以使用

.str.to_date()

 作为极坐标 v0.17.10

df.select( pl.col("FL_DATE").str.to_date("%m/%d/%Y %r") )
shape: (3, 1)
┌────────────┐
│ FL_DATE    │
│ ---        │
│ date       │
╞════════════╡
│ 2023-01-01 │
│ 2023-01-01 │
│ 2023-01-01 │
└────────────┘
    
© www.soinside.com 2019 - 2024. All rights reserved.