如何使用'values'属性从几行DateFrame创建一个numpy数组?

时间:2016-03-26 11:35:29

标签: python arrays numpy pandas

我有一个DateFrame:

    TV  Radio   Newspaper   Sales
1   230.1   37.8    69.2    22.1
2   44.5    39.3    45.1    10.4
3   17.2    45.9    69.3    9.3
4   151.5   41.3    58.5    18.5
5   180.8   10.8    58.4    12.9

我需要创建两个NumPy数组。其中一个包含Sales行内容,另一个包含TVRadioNewspaper行。

import numpy as np
first_arr = np.array(myDateFrame['Sales'].values) #It works
second_arr = np.array(myDateFrame['TV', 'Radio', 'Newspaper']) #It doesn't work

它出现以下错误:

error: KeyError: ('TV', 'Radio', 'Newspaper')

我在哪里犯了错误?

2 个答案:

答案 0 :(得分:0)

你可以这样做:

>>> myDateFrame[['TV',  'Radio',  'Newspaper']].values
array([[ 230.1,   37.8,   69.2],
       [  44.5,   39.3,   45.1],
       [  17.2,   45.9,   69.3],
       [ 151.5,   41.3,   58.5],
       [ 180.8,   10.8,   58.4]])

无需致电np.array()。属性values已经是NumPy数组。

另请注意双方括号[['TV', 'Radio', 'Newspaper']].您需要提供多个列名作为列表,而不是单个参数。

答案 1 :(得分:0)

我会使用as_matrix()方法:

  

DataFrame.as_matrix(列=无)

     

将帧转换为Numpy-array表示。