首页 > 解决方案 > 将数据框转换为矩阵形式

问题描述

我有一个数据集如下所示:

state VDM  MDM  OM  
AP     1    2   5   
GOA    1    2   1   
GU     1    2   4   
KA     1    5   1   
MA     1    4   4

我试过这段代码:

aMat=df1000.as_matrix()
print(aMat)

这里 df1000 是数据集。

但是上面的代码给出了这个输出:

[['AP' 1 2 5]
 ['GOA' 1 2 1]
 ['GU' 1 2 4]
 ['KA' 1 5 1]
 ['MA' 1 4 4]]

我想创建一个如下所示的二维列表或矩阵:

[[1, 2, 5], [1, 2, 1], [1,  2,  4], [1, 5, 1], [1, 4, 4]]

标签: python-3.xpandaslistmatrix

解决方案


您可以使用df.iloc[]

df.iloc[:,1:].to_numpy()

array([[1, 2, 5],
   [1, 2, 1],
   [1, 2, 4],
   [1, 5, 1],
   [1, 4, 4]], dtype=int64)

或者对于字符串矩阵:

df.astype(str).iloc[:,1:].to_numpy()

array([['1', '2', '5'],
   ['1', '2', '1'],
   ['1', '2', '4'],
   ['1', '5', '1'],
   ['1', '4', '4']], dtype=object)

注意为什么我们不使用as_matrix()

“.as_matrix 将在未来版本中删除。改用 .values。”


推荐阅读