如何在pandas to_datetime中仅忽略超出时间范围的outofbounds错误?
解决pandas to_datetime仅忽略时间范围超限错误的方法
要实现只忽略超出pandas支持范围的日期错误,同时保留对其他错误的抛出,可以自定义一个转换函数,专门捕获OutOfBoundsDatetime异常:
- 导入必要模块
import pandas as pd from pandas.errors import OutOfBoundsDatetime
- 定义安全转换函数
def safe_to_datetime(x): try: return pd.to_datetime(x) except OutOfBoundsDatetime: # 仅当日期超出范围时返回原数据 return x
- 应用到数据列/整个DataFrame
- 处理单列:
df['target_column'] = df['target_column'].apply(safe_to_datetime)
- 处理整个DataFrame:
df = df.applymap(safe_to_datetime)
这个方法的核心是只针对时间范围超限的异常做处理,像格式错误(比如输入"2023/13/01"这种无效日期格式)、非日期类输入(比如字符串"abc")这类错误依然会正常抛出异常,不会被忽略,完全满足你只想跳过范围错误的需求。
内容的提问来源于stack exchange,提问作者Kingston X
相关产品推荐
相关产品推荐

