【Python初心者】カテゴリ変数を数値に置き換える

スポンサーリンク
Python
ゼロ知識の初心者がデータサイエンスを完全無料で学習する方法5選
データサイエンスの知識や技術、またはPythonについて学びたい。でも「大学に行くほど本気度がない」、「スクールに行くほどお金がない」、なんせ「時間がない」という方も多いはずです。というよりほとんどの方がそうだと思います(当然わたし...
初心者に人気のプログラミング言語Pythonは独学可能か?
Pythonは非常に人気のあるプログラミング言語で、まったくの初心者でも独学が可能と言われています。 Pythonはさまざまな目的に使える、汎用性のあるプログラミング言語です。 プログラミングは「独学が難しい」と言われていま...

データ分析や機械学習に必要な前処理を行うときに、カテゴリ変数を数値に置き換える場合があります。今回は、カテゴリ変数を数値に置き換える方法をコードをもとにみていきましょう。
Pythonの環境構築は、Anacondaをインストールし、Jupyter Labを使っていきます。過去記事を参照して下さい。

【2021年最新】M1 mac でanacondaをインストールする方法

【2021年最新】WindowsでAnacondaをインストールする方法

必要なライブラリをインポート

import numpy as np
import pandas as pd
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')

データを読み込む(タイタニック)

df = sns.load_dataset('tips')[["sex","day"]]  # 「sex」と「day」のみを抽出
df

出力:

カテゴリ変数を数値に置き換える(sex)

mapping = {'Male':1, 'Female':0}    # Maleを1に、Femaleを0に変換する
df["sex"] = df["sex"].map(mapping)  # 上の条件を適応させる
df

出力:

Maleが1に、Femaleが0になりました。

もとに戻す

remapping = {v: k for k, v in mapping.items()}
df["sex"] = df["sex"].map(remapping)
df

出力:

カテゴリ変数を数値に置き換える(day)

class_mapping = {day: num for num, day in enumerate(np.unique(df["day"]))}
class_mapping

出力:
{‘Fri’: 0, ‘Sat’: 1, ‘Sun’: 2, ‘Thur’: 3}

df["day"] = df["day"].map(class_mapping)
df

出力:

もとに戻す

remapping_class = {v: k for k, v in class_mapping.items()}
df["day"] = df["day"].map(remapping_class)
df

出力:

別のやり方

from sklearn.preprocessing import LabelEncoder
class_le = LabelEncoder()
df["day"] = class_le.fit_transform(df["day"].values)
df

出力:

こんな感じで、データの前処理を行っていきます。

カテゴリ変数をそのまま使える場合もありますが、自分でデータの前処理を行っていった方が、確実で正確な解析結果をもたらしてくれます。

【おすすめ】Pythonの独学で必要な書籍

【初心者】プログラミング学習、独学かスクールか問題

【2021年】ゼロから統計学を独学したい人が読むべき書籍10冊





コメント

タイトルとURLをコピーしました