我如何捕获pandas DataError?

A U*_*ser 6 python error-handling pandas

我已经修复了导致DataError的错误,但我不能为我的生活找出如何明确地捕获它:

try:
    df["my column"] = df.baddata + df.morebaddata
except DataError:
   print "Caught Error!"
Run Code Online (Sandbox Code Playgroud)

得到: NameError: name 'DataError' is not defined

然后我尝试pd.core.frame.DataError并收到了AttributeError.我也试过谷歌搜索,但找不到大熊猫错误类型的列表.什么是正确的路径DataError

Chr*_*lly 6

对于Pandas <= 0.22(之前的答案是给Django的),解决方案是由@ henrique-marciel提出的,但是使用了Pandas导入.所以

from pandas.core.groupby import DataError
Run Code Online (Sandbox Code Playgroud)

并添加例外

except DataError:
Run Code Online (Sandbox Code Playgroud)

对于Pandas> = 0.23,如ytu所述,API已更改,应使用以下导入:

from pandas.core.groupby.groupby import DataError
Run Code Online (Sandbox Code Playgroud)

  • 这在pandas 0.23.0中不再起作用.`from pandas.core.groupby import DataError`产生`ImportError:无法导入名称'DataError'`,`AttributeError:module'pandas.core.groupby'没有属性'DataError'`如果`pandas.core.groupby.DataError `被叫. (2认同)

小智 5

我有同样的问题,可以解决如下:

from django.db import DataError
Run Code Online (Sandbox Code Playgroud)

添加例外

except DataError:
Run Code Online (Sandbox Code Playgroud)

我设法解决了这种问题,下面是文档的链接。

文献资料