首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ValueError:时间数据不匹配格式'%H:%M:%S.%f‘(匹配)

ValueError:时间数据不匹配格式'%H:%M:%S.%f‘(匹配)
EN

Stack Overflow用户
提问于 2022-02-25 12:51:14
回答 1查看 748关注 0票数 0

我有一个有上千行的数据

代码语言:javascript
运行
复制
df_11=

     dataReceived      time     
0       1           15:00:56.052554
1       1           15:02:18.764644
2       1           02:43:10 
3       1           05:46:12
...
6054    1           23:15:14.5687

当我试图将列time转换为date time时,如下所示:

代码语言:javascript
运行
复制
pd.to_datetime(df_11['time'], format='%H:%M:%S.%f')

我发现了一个明显的错误:

代码语言:javascript
运行
复制
ValueError: time data '02:43:10' does not match format '%H:%M:%S.%f' (match)

它们是否可以轻松地将.0附加到特定的值中以满足标准?我觉得这是最好的办法

我发现了类似的问题,here,但是我不想在使用dataframe时使用循环

thx

EN

Stack Overflow用户

回答已采纳

发布于 2022-02-25 13:16:51

你有不同的选择。

(1)在分析日期之前编辑文本

代码语言:javascript
运行
复制
from datetime import datetime

date_texts = [
    "15:00:56.052554",
    "02:43:10",
    "05:46:12",
    "23:15:14.5687"
]

for date_text in date_texts:
    if not '.' in date_text:
        date_text += ".0"
    dt = datetime.strptime(date_text, "%H:%M:%S.%f")
    
    print(f"{date_text} --> {dt}")

(2)首先检查日期格式,然后在解析时应用正确的格式。

代码语言:javascript
运行
复制
from datetime import datetime
import re

date_texts = [
    "15:00:56.052554",
    "02:43:10",
    "05:46:12",
    "23:15:14.5687"
]

for date_text in date_texts:
    if re.match(r"^[0-9]+:[0-9]+:[0-9]+\.[0-9]+$", date_text):
        dt = datetime.strptime(date_text, "%H:%M:%S.%f")
    else:
        dt = datetime.strptime(date_text, "%H:%M:%S")

    print(f"{date_text} --> {dt}")

(3)尝试第一种格式,捕获异常,然后尝试第二种格式

代码语言:javascript
运行
复制
from datetime import datetime

date_texts = [
    "15:00:56.052554",
    "02:43:10",
    "05:46:12",
    "23:15:14.5687"
]

for date_text in date_texts:
    try:
        dt = datetime.strptime(date_text, "%H:%M:%S.%f")
    except ValueError:
        dt = datetime.strptime(date_text, "%H:%M:%S")
    
    print(f"{date_text} --> {dt}")
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71266142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档