【发布时间】:2016-09-09 02:32:53
【问题描述】:
我将我的输入读取为 pandas 数据框并通过以下方式填充 NaN:
df = df.fillna(0)
之后,我分成训练集和测试集,并使用 sklearn 进行分类。
features = df.drop('class',axis=1)
labels = df['class']
features_train, features_test, labels_train, labels_test = train_test_split(features, labels, test_size=0.3, random_state=42)
clf.fit(features_train, labels_train)
但还是有错误
“NaN 错误”:ValueError:输入包含 NaN、无穷大或对于 dtype('float32') 来说太大的值。
fillna() 似乎没有找到丢失的数据。我怎样才能找到“NaN”在哪里?
【问题讨论】:
-
"无穷大或值对于 dtype('float32') 来说太大了" 你也检查过这两种情况吗?
-
features.dtypes 显示列的类型是 int64 和 float64,对于无穷大,不,我没有
-
您的任何功能是否包含字符串?我不认为 dropna 会考虑他们 NaN
-
数据是由特征计算工具生成的,所以都是数值特征。但如果任何特征包含字符串,我可以使用 features.dtypes 找到它,对吧?
-
您可以尝试使用
imputer类来估算数据,请访问文档!
标签: python pandas scikit-learn