我想将除pandas数据框的第一列之外的所有内容都转换为numpy数组。由于某种原因,使用columns=参数DataFrame.to_matrix()无效。
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的数组
X=df.as_matrix(columns=[df[1:]])
NaN
该columns参数接受列名称的集合。您正在传递一个包含两行数据框的列表:
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. ]])