小编典典

将Pandas数据框中的选择列转换为Numpy数组

python

我想将除pandas数据框的第一列之外的所有内容都转换为numpy数组。由于某种原因,使用columns=参数DataFrame.to_matrix()无效。

df:

  viz  a1_count  a1_mean     a1_std
0   n         3        2   0.816497
1   n         0      NaN        NaN 
2   n         2       51  50.000000

我试过了,X=df.as_matrix(columns=[df[1:]])但这产生了所有NaNs的数组


阅读 212

收藏
2020-12-20

共1个答案

小编典典

columns参数接受列名称的集合。您正在传递一个包含两行数据框的列表:

>>> [df[1:]]
[  viz  a1_count  a1_mean  a1_std
1   n         0      NaN     NaN
2   n         2       51      50]
>>> df.as_matrix(columns=[df[1:]])
array([[ nan,  nan],
       [ nan,  nan],
       [ nan,  nan]])

而是传递所需的列名称:

>>> df.columns[1:]
Index(['a1_count', 'a1_mean', 'a1_std'], dtype='object')
>>> df.as_matrix(columns=df.columns[1:])
array([[  3.      ,   2.      ,   0.816497],
       [  0.      ,        nan,        nan],
       [  2.      ,  51.      ,  50.      ]])
2020-12-20