我正在尝试将数据帧的单个列转换为numpy数组。转换整个数据帧没有问题。
数据框
viz a1_count a1_mean a1_std
0 0 3 2 0.816497
1 1 0 NaN NaN
2 0 2 51 50.000000
这两种功能都工作正常:
X = df.as_matrix()
X = df.as_matrix(columns=df.columns[1:])
但是,当我尝试:
y = df.as_matrix(columns=df.columns[0])
我得到:
TypeError: Index(...) must be called with a collection of some kind, 'viz' was passed
这里的问题是,您只传递一个元素,在本例中,它只是该列的字符串标题,如果您将其转换为包含一个元素的列表,则它可以工作:
这是你要经过的地方:
所以它相当于:
会导致同样的错误
docs显示所需的参数:
使用index tolist函数也可以
当给出多个列时,例如,先给出10,然后是命令
不起作用,因为它返回索引。但是,使用
效果很好。
as_matrix
需要list
作为columns
关键字,df.columns[0]
不是列表。尝试df.as_matrix(columns=[df.columns[0]])
取而代之。相关问题 更多 >
编程相关推荐