如何捕获 pandas DataError?
How can I catch a pandas DataError?
我已经修复了导致 DataError 的错误,但我终其一生都无法弄清楚如何明确地捕获它:
try:
df["my column"] = df.baddata + df.morebaddata
except DataError:
print "Caught Error!"
给出:NameError: name 'DataError' is not defined
然后我尝试 pd.core.frame.DataError
并收到 AttributeError
。我也尝试使用谷歌搜索,但找不到 pandas 错误类型的列表。 DataError
的正确路径是什么?
我也遇到了同样的问题,您可以按如下方式解决:
from django.db import DataError
添加例外
except DataError:
我这样解决了,下面是文档的link
对于 Pandas<=0.22(之前的答案是针对 Django 给出的),解决方案与 @henrique-marciel 提出的一样,但带有 Pandas 导入。所以
from pandas.core.groupby import DataError
并添加例外
except DataError:
对于 Pandas>=0.23,如 ytu 所述,API 已更改,应改用以下导入:
from pandas.core.groupby.groupby import DataError
最安全最快捷的方式是:
from pandas.core.base import DataError
为什么
在pandas.core.base
中我们可以找到实际定义DataError
的地方:
class DataError(Exception):
pass
pandas.core.groupby.groupby
简单地按如下方式导入,更新后更容易崩溃:
from pandas.core.base import (
DataError,
PandasObject,
SelectionMixin,
)
我已经修复了导致 DataError 的错误,但我终其一生都无法弄清楚如何明确地捕获它:
try:
df["my column"] = df.baddata + df.morebaddata
except DataError:
print "Caught Error!"
给出:NameError: name 'DataError' is not defined
然后我尝试 pd.core.frame.DataError
并收到 AttributeError
。我也尝试使用谷歌搜索,但找不到 pandas 错误类型的列表。 DataError
的正确路径是什么?
我也遇到了同样的问题,您可以按如下方式解决:
from django.db import DataError
添加例外
except DataError:
我这样解决了,下面是文档的link
对于 Pandas<=0.22(之前的答案是针对 Django 给出的),解决方案与 @henrique-marciel 提出的一样,但带有 Pandas 导入。所以
from pandas.core.groupby import DataError
并添加例外
except DataError:
对于 Pandas>=0.23,如 ytu 所述,API 已更改,应改用以下导入:
from pandas.core.groupby.groupby import DataError
最安全最快捷的方式是:
from pandas.core.base import DataError
为什么
在pandas.core.base
中我们可以找到实际定义DataError
的地方:
class DataError(Exception):
pass
pandas.core.groupby.groupby
简单地按如下方式导入,更新后更容易崩溃:
from pandas.core.base import (
DataError,
PandasObject,
SelectionMixin,
)