Pandas でカテゴリ変数を作成する方法 (例付き)
次のいずれかの方法を使用して、pandas でカテゴリカル変数を作成できます。
方法 1: カテゴリ変数を最初から作成する
df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']
方法 2: 既存の数値変数からカテゴリ変数を作成する
df[' cat_variable '] = pd. cut (df[' numeric_variable '], bins=[ 0,15,25 ,float(' Inf ') ] , labels=[' Bad ', ' OK ', ' Good '])
次の例は、各メソッドを実際に使用する方法を示しています。
例 1: カテゴリ変数を最初から作成する
次のコードは、 teamというカテゴリ変数とPointsという数値変数を使用して pandas DataFrame を作成する方法を示しています。
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#view DataFrame
print (df)
team points
0 to 12
1 B 15
2 C 19
3 D 22
4 E 24
5 F 25
6 G 26
7:30 a.m.
#view data type of each column in DataFrame
print ( df.dtypes )
team object
int64 dots
dtype:object
df.dtypesを使用すると、DataFrame 内の各変数のデータ型を確認できます。
見える:
- チーム変数はオブジェクトです。
- ポイント変数は整数です。
Python では、オブジェクトは文字または「カテゴリ」変数に相当します。したがって、チーム変数はカテゴリ変数です。
例 2: 既存の数値変数からカテゴリ変数を作成する
次のコードは、DataFrame 内のPointsという既存の数値変数からstatusというカテゴリ変数を作成する方法を示しています。
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#create categorical variable 'status' based on existing numerical 'points' variable
df[' status '] = pd. cut (df[' points '],
bins=[ 0,15,25 ,float(' Inf ') ] ,
labels=[' Bad ', ' OK ', ' Good '])
#view updated DataFrame
print (df)
team points status
0 To 12 Bad
1 B 15 Bad
2 C 19 OK
3 D 22 OK
4 E 24 OK
5 F 25 OK
6 G 26 Good
7:30 a.m. Good
Cut()関数を使用して、次の値を取るstatusという新しいカテゴリ変数を作成しました。
- ポイント列の値が 15 以下の場合は「 Bad 」。
- それ以外の場合、ポイント列の値が 25 以下の場合は「 OK 」になります。
- それ以外の場合は「良い」。
Cut()関数を使用する場合、ラベルの数はビンの数より 1 つ少ない必要があることに注意してください。
この例では、ボックスのエッジを定義するためにボックスに 4 つの値を使用し、カテゴリ変数に使用するラベルを指定するためにラベルに 3 つの値を使用しました。
追加リソース
次のチュートリアルでは、他の一般的なパンダのタスクを実行する方法について説明します。
Pandasでダミー変数を作成する方法
Pandas でカテゴリ変数を数値に変換する方法
Pandasでブール値を整数値に変換する方法