如何将DataFrame中带时区的日期字符串转为datetime对象?pd.to_datetime失效
解决Pandas中带时区的日期字符串转datetime对象问题
你遇到的2022-10-13T00:05:05-07:00是标准ISO 8601格式的带时区日期,一般pd.to_datetime可直接处理,若转换失败,试试以下几种方案:
指定明确格式参数
直接告知Pandas日期格式,避免自动解析出错:import pandas as pd df = pd.DataFrame({'date': ['2022-10-13T00:05:05-07:00']}) df['datetime'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S%z')其中
%z专门匹配时区偏移(如-07:00)。处理异常值
若DataFrame内存在格式不规范的日期,添加errors='coerce'参数将无法转换的值转为NaT,方便后续排查:df['datetime'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%H:%M:%S%z', errors='coerce')检查并升级Pandas版本
旧版本Pandas对%z时区格式的支持可能不完善,先查看当前版本:print(pd.__version__)若版本低于1.0.0,建议升级:
pip install --upgrade pandas
另外,转换后的datetime对象会包含时区信息,若需去掉时区转为本地时间,可使用:
df['datetime_naive'] = df['datetime'].dt.tz_localize(None)
内容的提问来源于stack exchange,提问作者KKS
相关产品推荐
相关产品推荐

