我是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數組的概念。 –