2016-03-26 148 views
2

我有一個DateFrame:如何使用'values'atribute從幾行DateFrame創建一個numpy數組?

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行內容,另一個用TV,RadioNewspaper行。

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') 

我在哪裏犯了一個錯誤?

回答

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']].您需要提供多個列名作爲列表,而不是作爲單個參數。

+0

非常感謝你)! –

0

我會用as_matrix()方法爲:

DataFrame.as_matrix(columns=None)

Convert the frame to its Numpy-array representation.

相關問題