我是Python新手。我正在尝试使用sklearn.cluster。 这里是我的代码:Python - 输入包含NaN,无穷大或值太大的dtype('float64')
from sklearn.cluster import MiniBatchKMeans
kmeans=MiniBatchKMeans(n_clusters=2)
kmeans.fit(df)
,但我得到了以下错误:
50 and not np.isfinite(X).all()):
51 raise ValueError("Input contains NaN, infinity"
---> 52 " or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64')
我检查了没有NAN或无穷大值。所以只剩下一个选择。但是,我的数据信息告诉我,所有变量都是float64,所以我不明白问题来自哪里。
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 362358 entries, 135 to 4747145
Data columns (total 8 columns):
User 362358 non-null float64
Hour 362352 non-null float64
Minute 362352 non-null float64
Day 362352 non-null float64
Month 362352 non-null float64
Year 362352 non-null float64
Latitude 362352 non-null float64
Longitude 362352 non-null float64
dtypes: float64(8)
memory usage: 24.9 MB
非常感谢,
'我检查了没有南或无限的价值.'请告诉我们你是如何做到这一点的。 – cel
对数据进行排序并检查顶部/底部值。 – Alexander
我认为'df'是一个熊猫DataFrame?如果是这样,请尝试'kmeans.fit(df.as_matrix())'。 Scikit-learn没有DataFrame的概念,只有numpy数组的概念。 –