one-hotエンコーディングの要否を判定(Object型判定)し自動的にしたい!

特徴量のカラムが多いときにいちいち「one-hotエンコーディング」をしていくのは面倒なので、すべてをまとめてしてしまいたいですよね。これはObject判定をしてからカラム名を辞書に入れそれをfor文で「one-hotエンコーディング」にしてく方法がよいとおもいます。下記を参照ください。また、Kaggleコンペに取り組まれているような方は、trainデータとtestデータが分かれている場合があるかと思いますが、一度まとめておいたほうがカラム名の不一致が生まれないためおすすめします。

# データ型がObject型のカラム名(特徴量)をリスト化
col_obj_name = DataFrame.dtypes[DataFrame.dtypes=='object'].index.tolist()
# データ型がObject型以外のカラム名(特徴量)をリスト化
col_num_name = DataFrame.dtypes[DataFrame.dtypes!='object'].index.tolist()
# object変数をダミー化
DataFrame_cat = pd.get_dummies(DataFrame[col_obj_name])
# データ統合
df_all = pd.concat([DataFrame[other_cols],DataFrame[col_num_name],DataFrame_cat],axis=1)

コメント

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