Pythonと!

プログラミングド素人の勉強日記です。

Pandasでone-hotエンコーディング

Pandasでone-hotエンコーディングを実装してみる。

import pandas as pd

# 学習データ(df_1)とテストデータ(df_2)の結合
combine = pd.concat([df_1, df_2])

# カテゴリ列を抽出
cat_cols = []
for col in combine.columns:
    if combine[col].dtype == 'object':
        cat_cols.append(col)

# one-hotエンコーディング
combine = pd.get_dummies(combine, columns=cat_cols)

# 学習データとテストデータに再分割
df_1 = combine.iloc[:df_1.shape[0], :].reset_index(drop=True)
df_2 = combine.iloc[df_2.shape[0]:, :].reset_index(drop=True)