pandas 尝试在数组中查找无穷大值时出错

ddarikpa  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(194)

我想找出我的回归模型中哪一列的值是无穷大的,因为我的回归模型抛出了一个错误。
我使用了以下命令:

col_name = df.columns.to_series()[np.isinf(df).any()]
print(col_name)

字符串
我遇到了以下错误:

ufunc 'isinf' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

bvuwiixz

bvuwiixz1#

在DataFrame中,您可能有一个特殊的pandas null类型(如pd.NA),numpy不知道该如何处理。
我在尝试替换我的非有限值检查时遇到了同样的问题,因为我看到FutureWarning:use_inf_as_na option is deprecatedhttps://github.com/pandas-dev/pandas/issues/34093)。如果你有早期版本的pandas,你可以尝试在启用和禁用此选项的情况下比较结果。

with pd.option_context('mode.use_inf_as_na', True):
     not_finite = pd.isna(vals)

字符串
如果你知道你所有的数据都是数值型的,可以考虑尝试将pd.NA(对象类型)替换为npp.NaN(浮点类型),numpy应该能够正常处理。

df_temp = df.where(pd.notnull(df), np.nan)  # Replace pd.NA, np.nan and None by np.nan
col_name = df_temp.columns.to_series()[np.isinf(df_temp).any()]

相关问题