2015-10-21 88 views
0

我有一個熊貓數據幀是曾與字符串列0-9列名:Scikit/numpy的/大熊貓ValueError異常:設置一個數組元素與序列

working_df = pd.DataFrame(np.random.rand(5,10),index=range(0,5), columns=[str(x) for x in range(10)]) 
working_df.loc[:,'outcome'] = [0,1,1,0,1] 

我當時就想獲得所有的數組這些數字成一列,所以我做:

array_list = [Y for Y in x[[str(num) for num in range(10)]].values] 

這給了我:

[array([ 0.0793451 , 0.3288617 , 0.75887129, 0.01128641, 0.64105905, 
     0.78789297, 0.69673768, 0.20354558, 0.48976411, 0.72848541]), 
array([ 0.53511388, 0.08896322, 0.10302786, 0.08008444, 0.18218731, 
     0.2342337 , 0.52622153, 0.65607384, 0.86069294, 0.8864577 ]), 
array([ 0.82878026, 0.33986175, 0.25707122, 0.96525733, 0.5897311 , 
     0.3884232 , 0.10943644, 0.26944414, 0.85491211, 0.15801284]), 
array([ 0.31818888, 0.0525836 , 0.49150727, 0.53682492, 0.78692193, 
     0.97945708, 0.53181293, 0.74330327, 0.91364064, 0.49085287]), 
array([ 0.14909577, 0.33959452, 0.20607263, 0.78789116, 0.41780657, 
     0.0437907 , 0.67697385, 0.98579928, 0.1487507 , 0.41682309])] 

我然後連接到我的數據框使用:

working_df.loc[:,'array_list'] = pd.Series(array_list) 

然後我安裝我的rf_clf = RandomForestClassifier()和我嘗試rf_clf.fit(working_df['array_list'][1:].values, working_df['outcome'][1:].values)這導致ValueError: setting an array element with sequence

它是與陣列中安裝的陣列有問題嗎?感謝您的任何見解。

+0

請你可以在你的問題中顯示完整的錯誤回溯,以便我們可以看到異常正在提出的位置 –

回答

1

問題是,scikit-learn需要一個二維數組值作爲輸入。您傳遞的是一維對象數組(每個對象本身都是一維數組)。

速戰速決將做到這一點:

X = np.array(list(working_df['array_list'][1:])) 
y = working_df['outcome'][1:].values 
rf_clf.fit(X, y) 

一個更好的解決將是不是你的二維陣列功能一維大熊貓列中存儲。

+0

謝謝!你的視頻是什麼讓我開始scikit學習..謝謝你的提示 – nahata5

相關問題