Python输入包含NaN,无穷大或对于dtype float32而言太大的值

时间:2019-01-03 21:09:16

标签: python pandas dataframe sklearn-pandas

我正在尝试使用sklearn的决策树分类器进行分类。我已经将训练和测试数据集存储到两个单独的熊猫数据框中。我这样称呼分类器:

classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)
classifier.fit(features_in_training_set, class_labels_in_training_set)
predictions = classifier.predict(features_in_testing_set)

但是,我收到此错误,这在对树进行分类时似乎很常见。

ValueError: Input contains NaN, infinity or a value too large for dtype('float32').

我知道这两个数据集中都没有缺失值。我正在使用不正当的方法更改它们。数据帧的打印结果显示了这一点,但要仔细检查,我也尝试过df.isna()并且输出均为False。我不认为我有无穷大值,因为框架由二进制值组成。我不想删除行或列,因为我不想减少数据集。我也不想在任何其他条件下替换它们。

我不太确定如何查找对于dtype float 32太大的列,以及如何更改它们。我觉得这可能是我的时间戳列。这是训练数据帧的一小段,因为它很大:

             time      A     B 
0       1.518999e+09   1     1
1       1.518999e+09   1     0 
2       1.518999e+09   0     1
3       1.518999e+09   0     0

1 个答案:

答案 0 :(得分:0)

尝试检查数据框的摘要。 例如如果您的数据框显示缺少任何特征的样本,则意味着某些观测值的值为空。

遇到可能的除以零的情况。