2015-10-07 48 views
1

我的代碼是:爲什麼這會返回'太多索引器'?

import pandas as pd 
import numpy as np 
from sklearn import svm 

name = '../CLIWOC/CLIWOC15.csv' 
data = pd.read_csv(name) 

# Get info into dataframe and drop NaNs 
data = pd.concat([data.UTC, data.Lon3, data.Lat3, data.Rain]).dropna(how='any') 

# Set target 
X = data.loc[:, ['UTC', 'Lon3', 'Lat3']] 
y = data['Rain'] 

# Partition a test set 
Xtest = X[-1] 
ytest = y[-1] 
X = X[1:-2] 
y = y[1:-2] 

# Train classifier 
classifier = svm.svc(gamma=0.01, C=100.) 
classifier.fit(X, y) 
classifier.predict(Xtest) 
y 

到家後「設定目標」部分,編譯器返回錯誤「太多的索引器」。我直接從文檔中提取了這個語法,所以我不確定哪裏可能是錯的。 csv使用這些標頭組織數據列。

+0

嘗試使用'X =數據[[ 'UTC', 'Lon3', 'Lat3']]' – hellpanderrr

回答

1

沒有您的數據,很難驗證。然而,我的直接懷疑是你需要傳遞一個numpy數組而不是DataFrame。

嘗試使用此方法提取它們:

# Set target 
X = data.loc[:, ['UTC', 'Lon3', 'Lat3']].values 
y = data['Rain'].values 
相關問題