TypeError: ufunc ‘isnan‘ not supported for the input types...nan错误(已解决)

解决办法:

pd.isnull()

参考链接 http://cn.voidcc.com/question/p-cqsjkwhl-hr.html 第一个回答

问题描述:

从csv中读取数据,然后提取其中的5-12列

 s1_s8 = answers.values[:,5:13] 
 print(type(s1_s8))# 
 print(s1_s8)

[1.0 1.0 5.0 1 1 2 5 2]
[1.0 2.0 2.0 2 4 4 4 4]
[1.0 1.0 nan 4 3 2 5 3]
[nan nan 3.0 2 1 2 4 2]
[1.0 1.0 4.0 2 1 1 5 2]
[2.0 1.0 5.0 1 1 1 5 2]]

数据类型为

然后想把找到其中所有的nan,所以使用numpy的isnan

print(np.isnan(s1_s8))

报错:

print(np.isnan(s1_s8))
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

在这里插入图片描述

最后换成

print(pd.isnull(s1_s8))

[False False False False False False False False]
[False False False False False False False False]
[False False False False False False False False]
[False False True False False False False False]
[ True True False False False False False False]
[False False False False False False False False]
[False False False False False False False False]]

True代表nan,成功解决

应用:

参考: https://blog.csdn.net/qq_18351157/article/details/104633551

找到了nan,对它进行清洗,我想到的第一种是换其它值填充,第二种是删除该行

1、以后再补充
2、s1_s8 = s1_s8[~pd.isnull(s1_s8).any(axis=1),:] #删除有nan的行

你可能感兴趣的:(python语法,python,开发语言,后端)