Skip to content

Pandasのget_dummies関数の効果的な使用方法

Updated on

PythonのPandasライブラリには、データ操作に強力で多才な関数がたくさんあり、そのうちの1つがget_dummies関数です。このチュートリアルでは、この関数を理解して効果的にデータ前処理に使用するための方法を紹介します。

Pythonでデータ可視化を素早く作成したいですか?

PyGWalkerはオープンソースのPythonプロジェクトで、Jupyter Notebookベースの環境内でデータ分析および可視化ワークフローを高速化するのに役立ちます。

PyGWalker (opens in a new tab)は、Pandas Dataframe(またはPolars Dataframe)をビジュアル UIに変換し、変数をドラッグアンドドロップして簡単にグラフを作成できます。以下のコードを使用するだけで、簡単に使用できます。

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

このオンラインノートブックでPyGWalkerを実行できます:

そして、GitHubで私たちに⭐️を付けることを忘れないでください!

KaggleノートブックでPyGWalkerを実行する (opens in a new tab)Google ColabでPyGWalkerを実行する (opens in a new tab)PyGWalkerに⭐️を与える (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

Pandasのget_dummiesの理解

Pandasのget_dummies関数は、カテゴリカルデータの取り扱いに強力なツールです。それは、カテゴリカル変数をダミー/指標変数に変換し、カテゴリカル変数の各ユニークなカテゴリごとに新しい列を作成し、元の行における該当カテゴリの存在または不在を示す1と0を作成します。

なぜこれが重要なのでしょうか?機械学習のアルゴリズムは通常、数値データで動作します。したがって、カテゴリカルデータを数値形式に変換する必要があることがよくあり、そこでget_dummiesが役立ちます。

import pandas as pd
 
# Example data
data = pd.DataFrame({'pets': ['cat', 'dog', 'bird', 'cat']})
 
# Applying get_dummies
dummies_data = pd.get_dummies(data)
 
print(dummies_data)

これにより、次のような出力が生成されます:

pets_bird  pets_cat  pets_dog
0          0         1         0
1          0         0         1
2          1         0         0
3          0         1         0

Get Dummies機能の解剖

get_dummies関数には、操作を細かく制御するためのいくつかのパラメータがあります。これらのパラメータの概要を以下に示します。

  • data:ダミー変数を生成するための入力のDataFrameまたはSeries。
  • prefix:ダミー変数の列名のためのオプションの接頭辞文字列。
  • prefix_sep:接頭辞と列名の間に使用するオプションの区切り文字列。デフォルトは "_"。
  • dummy_na:NaNを示す列を追加するためのブール値。falseの場合はNaNが無視されます。デフォルトはFalseです。
  • columns:ダミー変数に変換するオプションの列名のリスト。指定されていない場合、すべてのobjectおよびcategory dtype列が変換されます。
  • sparse:Trueの場合はSparseDataFrameを返し、それ以外の場合は通常のDataFrameを返します。デフォルトはFalseです。
  • drop_first:最初のレベルを削除することにより、k分割のk-1分割を取得して多重共線性を防ぐためのブール値。デフォルトはFalseです。

Pandas Get Dummiesの実用例

get_dummies関数のより具体的な実用例について説明します。

1. 接頭辞パラメータの使用

prefixパラメータを使用して、ダミー変数の新しい列名に特定の接頭辞を追加できます。これは、後でこれらの列のソースを特定するのに役立つ場合があります。

# Apply get_dummies with prefix
dummies_data_prefix = pd.get_dummies(data, prefix='pets')
 
print(dummies_data_prefix)

2. NaN値の処理

実際の世界のデータを扱う場合、欠損値に遭遇することがよくあります。dummy_naパラメータを使用することで、NaN値用の別のダミー列を作成できます。

# Example data with NaN
data = pd.DataFrame({'pets': ['cat', 'dog', 'bird', None]})
 
# Apply get_dummies with dummy_na
dummies_data_nan = pd.get_dummies(data, dummy_na=True)
 
print(dummies_data_nan)

3. 複数の列を扱う

get_dummies関数を一度に複数の列に適用することができます。以下の例では、2つのカテゴリカル列「pets」と「color」に対してダミー変数を作成しています。

# Example data with multiple columns
data = pd.DataFrame({'pets': ['cat', 'dog', 'bird', 'cat'], 'color': ['black', 'white', 'black', 'white']})
 

複数列にget_dummiesを適用する

dummies_data_multi = pd.get_dummies(data, columns=['pets', 'color'])

print(dummies_data_multi)


## 結論

結論として、`pd.get_dummies()`関数をマスターすることは、機械学習プロジェクトのデータ前処理能力を向上させることができます。これは、カテゴリカルデータを処理するための欠かせないツールであり、アルゴリズムに適した形式であることを保証します。