2014-02-10 112 views
17

我試圖運行由yhat in their article about random forests in Python提供的代碼,但我不斷收到以下錯誤消息:大熊貓屬性錯誤:沒有屬性「因素」發現

File "test_iris_with_rf.py", line 11, in <module> 
    df['species'] = pd.Factor(iris.target, iris.target_names) 
AttributeError: 'module' object has no attribute 'Factor' 

代碼:

from sklearn.datasets import load_iris 
from sklearn.ensemble import RandomForestClassifier 
import pandas as pd 
import numpy as np 

iris = load_iris() 
df = pd.DataFrame(iris.data, columns=iris.feature_names) 
print df 
print iris.target_names 
df['is_train'] = np.random.uniform(0, 1, len(df)) <= .75 

df['species'] = pd.Factor(iris.target, iris.target_names) 

df.head() 

回答

46

在更新版本的熊貓,Factor改爲Categorical。你行更改爲:

df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names) 
8

分類變量似乎是在熊貓的發展較爲活躍的領域之一,所以我相信這是又一次改變了大熊貓0.15.0:

df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names) 

(我缺乏足夠的聲譽添加此作爲評論大衛羅賓遜的答案)

+0

不要擔心,只有一個有限的名稱,它可以假設}:> – smci

0
def factor(series): 
    #input should be a pandas series object 
    dic = {} 
    for i,val in enumerate(series.value_counts().index): 
     dic[val] = i 
    return [ dic[val] for val in series.values ] 
相關問題