前提・実現したいこと
データの前処理の勉強をテキストにそってやっています。
one-hot エンコーディングを実行しようとしたのですが、以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ValueError: could not convert string to float: 'M'
該当のソースコード
from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import LabelEncoder import numpy as np import pandas as pd df = pd.DataFrame([ ['green', 'M', 10.1, 'class1'], ['red', 'L', 13.5, 'class2'], ['blue', 'XL', 15.3, 'class1']]) df.columns = ['color', 'size', 'price', 'classlabel'] X = df[['color', 'size', 'price']].values color_le = LabelEncoder() X[:, 0] = color_le.fit_transform(X[:, 0]) ohe = OneHotEncoder(categorical_features=[0]) ohe.fit_transform(X).toarray()
得られる結果
array([[ 0. , 1. , 0. , 1. , 10.1], [ 0. , 0. , 1. , 2. , 13.5], [ 1. , 0. , 0. , 3. , 15.3]])
試したこと
warning で
DeprecationWarning: The 'categorical_features' keyword is deprecated in version 0.20 and will be removed in 0.22. You can use the ColumnTransformer instead.
とでていたので、columntransformerを試してみましたが、だめでした。
補足情報(FW/ツールのバージョンなど)
python3.7、Anaconda
回答3件
あなたの回答
tips
プレビュー