Sklearn が文字列クラスラベルを int に変更する 質問する

Sklearn が文字列クラスラベルを int に変更する 質問する

私はパンダのデータフレームを持っており、文字列で表される特定の列の値を整数に変更しようとしています。たとえば、次のようになります。

df = index    fruit   quantity   price 
         0    apple          5    0.99
         1    apple          2    0.99
         2   orange          4    0.89
         4   banana          1    1.64
       ...
     10023     kiwi         10    0.92

ぜひご覧いただきたいのは:

df = index    fruit   quantity   price 
         0        1          5    0.99
         1        1          2    0.99
         2        2          4    0.89
         4        3          1    1.64
       ...
     10023        5         10    0.92

これを次のように実行できます

df["fruit"] = df["fruit"].map({"apple": 1, "orange": 2,...})

string変更するリストが小さい場合はこれで問題ありませんが、500 を超える異なるラベルを持つ列が表示されています。これをからに変更する方法はありますかint?

ベストアンサー1

使用できますsklearn.前処理

from sklearn import preprocessing

le = preprocessing.LabelEncoder()
le.fit(df.fruit)
df['categorical_label'] = le.transform(df.fruit)

ラベルを元のエンコードに戻します。

le.inverse_transform(df['categorical_label'])

おすすめ記事