本文介绍了将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 NaN
s
推荐答案
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数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!