2014-10-04 42 views
0
import Numpy as np 
import pandas as pd 
import sklearn 
from sklearn.datasets import load_boston 

Boston1 = load_boston() 
Boston2 = pd.DataFrame(boston.data, columns = boston.feature_names[0:13]) 
Boston2.keys() 

MEDV列消失?請幫助這個讓我瘋狂,我不知道我在做什麼錯python - 將數組導入熊貓但丟失列

回答

0
In [9]: boston1.feature_names 
Out[9]: 
array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 
     'TAX', 'PTRATIO', 'B', 'LSTAT'], 
     dtype='|S7') 

它不在feature_names,所以它沒有加載。

+0

對不起,你能否提供更多的細節?我習慣在R中做這種工作,這對我來說更直觀。你能解釋我如何解決這個問題嗎? – runningbirds 2014-10-04 17:26:25

+0

@ user3788557似乎沒有MEDV列在那裏開始。我相信它可能存儲在boston1.target中,但我不確定。 – Korem 2014-10-04 17:29:42

3
import numpy as np 
import pandas as pd 
import sklearn 
import sklearn.datasets as DS 

boston1 = DS.load_boston() 
boston2 = pd.DataFrame(
    np.column_stack([boston1.data, boston1.target]), 
    columns=np.r_[boston1.feature_names, ['MEDV']]) 
print(boston2.keys()) 

產生

Index([u'CRIM', u'ZN', u'INDUS', u'CHAS', u'NOX', u'RM', u'AGE', u'DIS', u'RAD', 
     u'TAX', u'PTRATIO', u'B', u'LSTAT', u'MEDV'], dtype='object') 

print(Boston1.DESCR)給出了稍微神祕評論, 「中間值(屬性14)通常爲目標」。但它沒有提到如何訪問MEDV數據。

The code on this page顯示方式:boston1.target是MEDV。我通過Google搜索「波士頓Medv目標」找到了該頁面。

+0

舊線程,我知道,但你的代碼原始代碼會產生錯誤:'傳遞值的形狀是(14,506),索引暗示(13,506)' – 2017-04-16 04:44:11

+1

@DanHoynoski:感謝您的錯誤報告。看起來'boston1.feature_names'不再包含'MEDV'。因此,必須將「MEDV」添加到傳遞給「columns」參數的值中。 'np.r_ [boston1.feature_names,['MEDV']]'。 – unutbu 2017-04-16 13:40:38