パンダ: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 列を整数に変換する方法