Pandas でダミーを取得
Suraj Joshi
2023年1月30日
-
pandas.get_dummies()
メソッド -
pandas.get_dummies()
メソッドを用いてダミー変数の列を持つ DataFrame を作成する -
指定したカラムのみにダミー変数を作成するように
columns
を設定する -
prefix
でダミーカラムのデフォルト名を変更する
このチュートリアルでは、カテゴリ列を持つ DataFrame からダミー変数や指標変数を用いて DataFrame を生成する方法を説明します。
pandas.get_dummies()
メソッド
pandas.get_dummies(
data,
prefix=None,
prefix_sep="_",
dummy_na=False,
columns=None,
sparse=False,
drop_first=False,
dtype=None,
)
pandas.get_dummies()
メソッドを用いてダミー変数の列を持つ DataFrame を作成する
import pandas as pd
students_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303],
"Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
"Sex": ["Male", "Female", "Male", "Male", "Female"],
}
)
students_df_dummies = pd.get_dummies(students_df)
print("The original DataFrame is:")
print(students_df, "\n")
print("DataFrame with Dummies:")
print(students_df_dummies)
出力:
The original DataFrame is:
Id Name Sex
0 302 Mike Male
1 504 Christine Female
2 708 Rob Male
3 103 Daniel Male
4 303 Jennifer Female
DataFrame with Dummies:
Id Name_Christine Name_Daniel Name_Jennifer Name_Mike Name_Rob Sex_Female Sex_Male
0 302 0 0 0 1 0 0 1
1 504 1 0 0 0 0 1 0
2 708 0 0 0 0 1 0 1
3 103 0 1 0 0 0 0 1
4 303 0 0 1 0 0 1 0
元のカラム名とそのカラムに固有の値を連結したダミーのカラム名を持つ DataFrame を生成します。
Name
カラムには 5つのユニークな値があるので、Name
は Name_
に加えて DataFrame 内の各ユニークな名前に分割されます。ダミーカラムの値は、初期の DataFrame の値に基づいて 1 または 0 になります。
students_df
DataFrame の Name
カラム Daniel
の値を持つ行は、students_df_dummies
DataFrame の Name_Daniel
カラムの値が 1 になり、それ以外のすべての名前の値は students_df_dummies
DataFrame の Name_Daniel
カラムの値が 0 になります。
指定したカラムのみにダミー変数を作成するように columns
を設定する
デフォルトでは、get_dummies()
メソッドは object
や category
という dtypes を持つ各カラムに対してダミーのカラムを持つ DataFrame を作成します。カラムのリストを columns
引数に渡すことで、特定のカラムを指定することができます。
import pandas as pd
students_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303],
"Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
"Sex": ["Male", "Female", "Male", "Male", "Female"],
}
)
students_df_dummies = pd.get_dummies(students_df, columns=["Sex"])
print("The original DataFrame is:")
print(students_df, "\n")
print("DataFrame with Dummies:")
print(students_df_dummies)
出力:
The original DataFrame is:
Id Name Sex
0 302 Mike Male
1 504 Christine Female
2 708 Rob Male
3 103 Daniel Male
4 303 Jennifer Female
DataFrame with Dummies:
Id Name Sex_Female Sex_Male
0 302 Mike 0 1
1 504 Christine 1 0
2 708 Rob 0 1
3 103 Daniel 0 1
4 303 Jennifer 1 0
Sex
カラムのみを対象としたダミー変数を生成します。
prefix
でダミーカラムのデフォルト名を変更する
import pandas as pd
students_df = pd.DataFrame(
{
"Id": [302, 504, 708, 103, 303],
"Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
"Sex": ["Male", "Female", "Male", "Male", "Female"],
}
)
students_df_dummies = pd.get_dummies(students_df, columns=["Sex"], prefix="Column")
print("The original DataFrame is:")
print(students_df, "\n")
print("DataFrame with Dummies:")
print(students_df_dummies)
出力:
The original DataFrame is:
Id Name Sex
0 302 Mike Male
1 504 Christine Female
2 708 Rob Male
3 103 Daniel Male
4 303 Jennifer Female
DataFrame with Dummies:
Id Name Column_Female Column_Male
0 302 Mike 0 1
1 504 Christine 1 0
2 708 Rob 0 1
3 103 Daniel 0 1
4 303 Jennifer 1 0
Sex
カラムから生成されたダミーカラムの接頭辞を Column
に設定します。これで、ダミーのカラム名は Column_Female
と Column_Male
になります。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn