我的問題是for循環的每一步,都會生成一個新的數據幀。我希望將數據幀Concat的在一起有一個較大的一個,但不知何故我的函數將只返回結果的最後一個步驟,而不是合併的結果用於循環以將數據幀連接到較大的數據幀
def crossV(clf,data,n):
cvResult=pd.DataFrame()
for i in range(n+2)[2:]:
cvResult=pd.DataFrame()
tt=array(tuple(x[1:i] for x in data))
qq=array(tuple(x[0] for x in data))
recall_rate=cross_validation.cross_val_score(clf, tt, qq, cv=10,scoring='recall')*100
precision_rate=cross_validation.cross_val_score(clf, tt, qq, cv=10,scoring='precision')*100
accuracy_rate=cross_validation.cross_val_score(clf, tt, qq, cv=10,scoring='accuracy')*100
index_i=Series(np.repeat(i-1,10))
classifier_i=Series(np.repeat(str(clf)[:7],10))
recall_rate=Series(recall_rate)
precision_rate=Series(precision_rate)
accuracy_rate=Series(accuracy_rate)
rate={"classfier":classifier_i,"model":index_i,"recall":recall_rate,"precision":precision_rate,"accuracy":accuracy_rate}
result=pd.concat(rate,axis=1)
cvResult=cvResult.append(result)
return(cvResult)
謝謝!
也許結果= pd.concat([result,rate],ignore_index = True)?? –
順便說一句:在'='和''後面加'spaces',使代碼更具可讀性 - 參見:[PEP 8 - Python代碼樣式指南](http://legacy.python.org/dev/peps/ pep-0008 /) – furas
@fasttooth不幸的是它不起作用:( – MYjx