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

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

本文介绍了将Pandas数据框中的选择列转换为Numpy数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I would like to convert everything but the first column of a pandas dataframe into a numpy array. For some reason using the columns= parameter of DataFrame.to_matrix() is not working.

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:]]),但这会产生所有NaN s的数组

I tried X=df.as_matrix(columns=[df[1:]]) but this yields an array of all NaNs

推荐答案

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

The columns parameter accepts a collection of column names. You're passing a list containing a dataframe with two rows:

>>> [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]])

相反,传递所需的列名称:

Instead, pass the column names you want:

>>> 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.      ]])

这篇关于将Pandas数据框中的选择列转换为Numpy数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 17:03