输入包含NaN,无穷大或在执行KMean函数时对于dtype('float64')而言太大的值

问题描述 投票:0回答:1

我是数据科学领域的新手,在尝试进行KMeans聚类时,我遇到了这个错误:输入包含NaN,无穷大或对于dtype('float64')而言太大的值。

显然,我的编码无法正常工作,因为它将我的0转换为0.0 / 1转换为1.0等。这就是为什么sklearn的KMean功能无法工作的原因?

Where the recoding aka mapping fails

Where sklearn KMean fails

python anaconda data-science k-means sklearn-pandas
1个回答
0
投票

您需要确保您的数据没有任何空无穷大值。

您可以做:

x.isnull().sum()

看看是否有空值。如果总和大于1,则意味着至少有一个空值。您可以使用fillna方法对待它们:

x = x.fillna(value=value_you_want_to_fill_nulls)

有关完整文档,请阅读:pandas-documentation

另外,另一个问题可能是一个无穷大的值:

np.isinf(x).sum()
# the same logic for null values

# to treat infinity you can do:
x = x.replace([np.inf, -np.inf], np.nan)

然后处理空值。

但是,在进行任何计算之前,先了解为什么要使用无穷大/ null值以及如何避免它是一种好习惯。

© www.soinside.com 2019 - 2024. All rights reserved.