文字データを数字に置換する必要があるときに、便利!
やっている事
タイタニック号のデータセットを利用して
- 任意のラベル名のカラム値を文字→数字へ変換
- 数字へ変換されたものを、文字に戻す
準備
タイタニック号のデータは、seabornに入っているので、呼び出します。
import seaborn as sns
import pandas as pd
from sklearn import preprocessing
titanic = sns.load_dataset("titanic")
数字へ変換されたラベルを、文字ラベルに戻すために辞書を用意
le_dict = {}
中身を確認
print(titanic.head())
実行
任意のラベル(sex, class)があるカラムのみ、文字→数字へ置き換えます
for column in ["sex", "class"]:
le_dict[column] = preprocessing.LabelEncoder()
le_dict[column].fit(titanic[column])
titanic[column] = le_dict[column].transform(titanic[column])
結果を確認
print(titanic.head())
male -> 1, female ->0などに置き換えられたことが確認できます。
ラベルを戻す
inverse_transform()を利用すれば戻すことができます。
for column in ["sex", "class"]:
titanic[column] = le_dict[column].inverse_transform(titanic[column])
結果を確認
print(titanic.head())
全コード
import seaborn as sns
import pandas as pd
from sklearn import preprocessing
titanic = sns.load_dataset("titanic")
le_dict = {}
print(titanic.head())
for column in ["sex", "class"]:
le_dict[column] = preprocessing.LabelEncoder()
le_dict[column].fit(titanic[column])
titanic[column] = le_dict[column].transform(titanic[column])
print(titanic.head())
for column in ["sex", "class"]:
titanic[column] = le_dict[column].inverse_transform(titanic[column])
print(titanic.head())