Python Scikit/Numpy/ValueError:使用序列设置数组元素

Python Scikit/Numpy/ValueError:使用序列设置数组元素,python,arrays,numpy,pandas,scikit-learn,Python,Arrays,Numpy,Pandas,Scikit Learn,我有一个pandas数据框,其中的列具有0-9之间的字符串作为列名: 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 n

我有一个pandas数据框,其中的列具有0-9之间的字符串作为列名:

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\u clf=RandomForestClassifier()
并尝试
rf\u clf.fit(working\u df['array\u list'][1:].values,working\u df['output'][1:].values)
这会导致
ValueError:使用序列设置数组元素


配件中的阵列是否存在问题?谢谢你的洞察力

问题在于scikit learn需要一个二维值数组作为输入。您正在传递一个一维对象数组(每个对象本身都是一维数组)

一个快速解决方法是:

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

更好的解决方法是不要将二维要素数组存储在一维熊猫列中。

请您在问题中显示完整的错误回溯,以便我们可以看到异常的确切位置谢谢!你的视频让我开始学习scikit。。谢谢你的提示