2017-10-20 1 views
0

を持っていないようで、パンダのデータフレーム「housing_catは」パンダ法「因数分解による因数分解する必要があります「パンダデータフレームは、私は現在、chapter02で</p> <p><a href="https://github.com/ageron/handson-ml" rel="nofollow noreferrer">https://github.com/ageron/handson-ml</a></p> <p>から機械学習のjupyterコースを勉強しています「因数分解」方法

housing_cat.factorize() 

はしかし、Pythonは

'DataFrame' object has no attribute 'factorize' 
を私に語っ

「housing_cat」と入力します。メソッドの選択にTABを使用する "factorize"も見つかりません。 Pandasは "import pandas"によってインポートされ、type(housing_cat)もpandasデータフレームであることがわかります。私はパンダを使用しますv0.20.3 ここで何が問題になるのでしょうか?

+1

factorizeメソッドは1-D型で動作し、DataFramesは2-Dです。 'housing_cat'をpandasシリーズにキャストできたら、' housing_cat.factorize() 'を使うことができます。 – Sumido

+0

ノートブックはちょうど修正されました。 – MiniQuark

答えて

1

これには2つの方法があります。

df.apply(lambda x : pd.factorize(x)[0])

または

df.apply(lambda x : x.astype('category').cat.codes)

なぜあなたの問題を引き起こす:以下くださいあなたはhousing_catシリーズタイプではないことを保証したい場合があります

from pandas import factorize 

housing_cat.factorize() 
+0

ありがとう私はこの方法でコードを変更しようとします – Rockbar

+0

@Rockbarまたはあなただけsklearnを呼び出すことができます、1つの 'LabelEncoder'、http://scikit-learn.org/stable /modules/generated/sklearn.preprocessing.LabelEncoder.html – Wen

+0

わかりました。しかし、book/jupyterのノートブックの著者は最近、LabelEncoderから、 – Rockbar

1

に動作しますhousing_cat.factorize()を適用する前にDataFrame。

+0

それは妥当です – Rockbar

関連する問題

 関連する問題