Pandas:Object类型DateTime转Datetime格式时遇OutOfBoundsDatetime错误
解决Pandas转换无年份时序数据时的OutOfBoundsDatetime错误
这个问题我之前处理时序数据时碰见过!你遇到的OutOfBoundsDatetime错误,核心原因是pandas默认会给无年份的日期字符串自动填充当前系统年份,但如果填充后的年份超出了pandas datetime类型支持的范围(大概是公元1677年9月21日到2262年4月11日),就会触发这个报错。
针对你的数据,这里有两个靠谱的解决方案:
方案一:手动指定固定年份(推荐)
因为你的数据里没有年份,我们可以主动给日期字符串拼接一个合理的年份(比如2023,根据你的业务需求调整),再进行格式转换,这样就能完全避免自动填充带来的问题:
import pandas as pd # 给日期字符串拼接固定年份 df['DateTime'] = '2023 ' + df['DateTime'] # 按指定格式转换为datetime类型 df['DateTime'] = pd.to_datetime(df['DateTime'], format='%Y %d/%m %H:%M:%S')
转换完成后,你可以用df['DateTime'].dtype检查一下,应该会显示datetime64[ns],这就说明转换成功了。
方案二:强制转换并跳过错误(不推荐,会丢失数据)
如果你只是想快速完成转换,不在乎丢失少量异常数据,可以使用errors='coerce'参数,让pandas把无法转换的日期转为NaT(Not a Time):
df['DateTime'] = pd.to_datetime(df['DateTime'], format='%d/%m %H:%M:%S', errors='coerce')
不过这个方法要谨慎使用,因为它会直接丢掉转换失败的行数据,除非你确认这些异常数据对你的分析没有影响。
内容的提问来源于stack exchange,提问作者NOOB
相关产品推荐
相关产品推荐

