2017-12-20 6 views
1

これはコードであり、非数値データを数値に変換しようとしています。しかし、それは誤りとValueErrorを返す:ディメンション26 でアレイ軸にサイズ205でシーケンスをコピーすることはできませんデータがhttp://archive.ics.uci.edu/ml/datasets/Automobileエラーの意味ValueError:サイズが205のシーケンスを次元26の配列軸にコピーできず、それを解決する方法

automobile = pd.read_csv('imports-85.csv', names = ["symboling", 
"normalized-losses", "make", "fuel", "aspiration", "num-of-doors", "body- 
style", "drive-wheels", "engine-location", "wheel-base", "length", "width", 
"height", " curb-weight", "engine-type", "num-of-cylinders","engine- 
size","fuel-system","bore","stroke"," compression-ratio","horsepower","peak- 
rpm","city-mpg","highway-mpg","price"]) 
X = automobile.drop('symboling',axis=1) 
y = automobile['symboling'] 

le = preprocessing.LabelEncoder() 
le.fit([automobile]) 

print (le) 

答えて

0

から入手fit方法は[n_samples]の配列を受け取りれdocsを参照してください。リスト内でデータフレーム全体を渡しています。あなたのデータフレーム(automobile.shape)の形を印刷すると、それは形が表示されます。(205, 26)

データをエンコードする場合は、一度に1列ずつ行う必要があります。 le.fit(automobile['make'])

LabelEncoderは、ラベル用で入力機能用ではないことを示しているので、これはカテゴリデータをコード化する正しい方法ではありません。 scikit-learnsの現在の状態では、OneHotEncoderを使用する必要があります。次のリリースでは、categorical encoderの計画があります。

関連する問題