パンダ:factorize() を使用して文字列を数値としてエンコードする方法


pandasactorize()関数を使用すると、文字列を数値としてエンコードできます。

次のメソッドを使用して、 factorize()関数を pandas DataFrame の列に適用できます。

方法 1: 列を因数分解する

 df[' col1 '] = pd. factorize (df[' col '])[0]

方法 2: 因子固有の列

 df[[' col1 ', ' col3 ']] = df[[' col1 ', ' col3 ']]. apply ( lambda x: pd.factorize (x)[ 0 ])

方法 3: すべての列を因数分解する

 df = df. apply ( lambda x: pd.factorize (x)[ 0 ])

次の例は、次の pandas DataFrame で各メソッドを使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' conf ': ['West', 'West', 'East', 'East'],
                   ' team ': ['A', 'B', 'C', 'D'],
                   ' position ': ['Guard', 'Forward', 'Guard', 'Center'] })

#view DataFrame
df

   conf team position
0 West A Guard
1 West B Forward
2 East C Guard
3 East D Center

例 1: 列を因数分解する

次のコードは、DataFrame 内の列を因数分解する方法を示しています。

 #factorize the conf column only
df[' conf '] = pd. factorize (df[' conf '])[ 0 ]

#view updated DataFrame
df

	conf team position
0 0 A Guard
1 0 B Forward
2 1 C Guard
3 1 D Center

「conf」列のみが因数分解されていることに注意してください。

「West」だったすべての値は 0 になり、「East」だったすべての値は 1 になりました。

例 2: 因子固有の列

次のコードは、DataFrame 内の特定の列を因数分解する方法を示しています。

 #factorize conf and team columns only
df[[' conf ', ' team ']] = df[[' conf ', ' team ']]. apply ( lambda x: pd.factorize (x)[ 0 ])

#view updated DataFrame
df

        conf team position
0 0 0 Guard
1 0 1 Forward
2 1 2 Guard
3 1 3 Center

「conf」列と「team」列が両方とも因数分解されていることに注意してください。

例 3: すべての列を因数分解する

次のコードは、DataFrame 内のすべての列を因数分解する方法を示しています。

 #factorize all columns
df = df. apply ( lambda x: pd.factorize (x)[ 0 ])

#view updated DataFrame
df

     conf team position
0 0 0 0
1 0 1 1
2 1 2 0
3 1 3 2

すべての列が因数分解されていることに注意してください。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas DataFrame 列を文字列に変換する方法
Pandas でカテゴリ変数を数値に変換する方法
Pandas DataFrame 列を整数に変換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です