python - Scikit/Numpy/Pandas 值错误 : setting an array element with sequence

标签 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 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: seting an array element with sequence

是不是拟合中的数组有问题?感谢您的任何见解。

最佳答案

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

一个快速解决方法是这样做:

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

更好的解决方法是不要将二维特征数组存储在一维 pandas 列中。

关于python - Scikit/Numpy/Pandas 值错误 : setting an array element with sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33268857/

相关文章:

php - 数据库查询、检查和设置数组

python - Numpy:ImportError:无法导入名称 TestCase

python - 为什么 python slice 语法不从负索引环绕到正索引?

python - 为什么我得到 "NoneType' 对象没有属性...?

python - 如何将 pandas 数据框中的数字列与 NaN 结合起来?

php - 如何在 php 中执行模式为数组的 preg_match?

java - 如何在 Java 中比较两个二维数组?

python - 为什么这个Python逻辑索引占用这么多内存

python - scipy 中最小二乘函数的雅可比行列式的方法签名

python - 如何对 pandas 系列的值进行排序,同时随机化关系的顺序?