我已经修复了导致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
。我也试过谷歌搜索,但找不到大熊猫错误类型的列表。 DataError
的正确路径是什么?
答案 0 :(得分:6)
对于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
答案 1 :(得分:4)
我有同样的问题,你可以解决如下:
from django.db import DataError
添加例外
except DataError:
我设法解决了这个问题,下面是文档的链接。
答案 2 :(得分:0)
最安全、最短的方法是:
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,
)