如何使用pd.to_datetime将带横杠的日期字符串转为datetime格式?
解决pandas日期字符串转换错误的方法
你的问题出在日期格式指令使用错误,pandas的pd.to_datetime遵循Python的strftime格式规则,你用的%M、%D、%h都是不符合需求的错误指令:
%M代表分钟,不是月份;月份正确指令是%m%D是%m/%d/%y的缩写格式,不能单独表示日期;日期正确指令是%d%h是12小时制的月份缩写(比如Jan),24小时制的小时正确指令是%H
方法1:修正你原有的拆分思路
拆分后的字符串格式为2022-12-16 16-48-47,对应正确的格式指令是%Y-%m-%d %H-%M-%S,代码如下:
import pandas as pd string = "2022-12-16T16-48-47" date, hour = string.split("T") string = date + " " + hour # 使用正确的格式指令转换 dt = pd.to_datetime(string, format="%Y-%m-%d %H-%M-%S") print(dt) # 输出:2022-12-16 16:48:47
方法2:更简洁的直接转换(无需拆分字符串)
直接针对原字符串2022-12-16T16-48-47指定格式,一步完成转换:
import pandas as pd string = "2022-12-16T16-48-47" dt = pd.to_datetime(string, format="%Y-%m-%dT%H-%M-%S") print(dt) # 输出:2022-12-16 16:48:47
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

