如何将Pandas列转换为datetime类型?已尝试代码未生效求解决
解决Pandas DateTime列转换失败的问题
针对你的示例值06/01/2022 12:00:06 AM,你用的格式字符串%m/%d/%Y %I:%M:%S %p本身是匹配的,转换失败可以试试下面几种方案:
直接去掉
str.strip()尝试转换
有时候str.strip()可能误处理掉格式内的必要空格,直接执行:odu1['DateTime'] = pd.to_datetime(odu1['DateTime'], format='%m/%d/%Y %I:%M:%S %p')让Pandas自动推断格式
移除format参数,让Pandas自行识别格式,同时用errors='coerce'把转换失败的行标记为NaT,方便排查异常值:odu1['DateTime'] = pd.to_datetime(odu1['DateTime'], errors='coerce') # 查看转换失败的原始数据 print(odu1[odu1['DateTime'].isna()])清理隐藏特殊字符
如果原始数据里有全角空格、制表符这类隐藏字符,先做清理再转换:import re # 把所有连续空白字符替换成单个空格并清理首尾 odu1['DateTime'] = odu1['DateTime'].apply(lambda x: re.sub(r'\s+', ' ', x.strip())) odu1['DateTime'] = pd.to_datetime(odu1['DateTime'], format='%m/%d/%Y %I:%M:%S %p')
内容的提问来源于stack exchange,提问作者Janzaib M Baloch
相关产品推荐
相关产品推荐

