首页 > 解决方案 > ValueError:时间数据 '00:01:29:06' 与格式 '%d:%H:%M:%S' 不匹配

问题描述

我需要将列中的数据帧持续时间转换为日期时间格式,以分析平均值或最大值/最小值,但它现在需要一些帮助,谢谢。 数据框

df['duration'] =pd.to_datetime(df['duration'], format='%d:%H:%M:%S')

标签: pythonpandas

解决方案


错误的原因是该%d格式只接受和之间的值0131因为它代表“月中的一天”)。00则无效。

我能想到的最好的解决方法(有人可能会提出更好的建议)是使用正则表达式将duration列中包含的字符串转换为一些有效的字符串,如下例所示:

df['duration']=pd.to_timedelta(df.duration.str.replace(r"(?P<day>\d+):", r'\g<day> days ', 1))

我不知道上面例子的时间复杂度(如果有一个大表要转换)。


推荐阅读