python - NameError:未定义名称“OutOfBoundsDatetime”
问题描述
我想将我的 DataFrame (df) 的列转换为 datetime 类型。所以我使用这样的功能pd.datetime
:
pd.to_datetime(df['date'])
但是我的 df 有一些日期为“0001-01-01”,所以我有一个错误告诉我:
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 00:00:00
所以,问题是当我尝试提取我的 df 上的所有行时,当我调用该pd.to_datetime()
函数时出现“OutOfBoundsDatetime”错误。
我的代码
good_id = []
notGoog_id = []
for i in range(len(my_df)):
try:
pd.to_datetime(my_df['date'][i])
good_id.append(i)
except OutOfBoundsDatetime:
notGood_id.append(i)
但是当我这样做时,我有一个错误告诉我:
NameError: name 'OutOfBoundsDatetime' is not defined
有人知道为什么这个 Python 不能识别这个错误吗?
解决方案
您可以预先清理输入,而不是依赖异常。就像在尝试解析日期之前检查日期是否在某个范围内一样。
import re
dates = ["0001-01-01", "2021-03-01"]
regex = "(\\d{4})-(\\d{2})-(\\d{2})"
for date in dates:
p = re.compile(regex)
m = p.match(date)
if int(m.group(1)) > 1970:
print(f"{date} good")
else:
print(f"{date} bad")
推荐阅读
- angular - 如何在 pdf.js 中实现范围请求
- linux - 只需在桌面上双击即可运行 shell 脚本
- linux - 如果不存在具有年份名称的目录和具有月份和日期的子目录,则创建
- mysql - 在春季从数据库中取回结果后是否有任何自动修剪方式可用
- azure-data-factory - ADF 架构模式文档
- javascript - 数据库加密基础:使用 MongoDB Atlas 时,数据会自动加密吗?
- android - 我从蓝牙中丢失了在活动之间移动和使用服务的数据
- json - 如何快速从 TagListView 中删除标签
- javascript - 如何从对象列表中检索值列表?
- java - Jooq 一次将 one2one 和 one2many 关系数据插入到 2 个表中。如何处理问题和回滚