データフレーム内のカテゴリのリストをそれらを分解してエンコードしようとしています。次に、この一連のリストから行列を作成します(それらを長さに正規化し、多次元配列を作成し、行列の要素を1つホットエンコードします)。パンダのデータフレームのリストをエンコード/ファクタリング
ただし、要因によって行間の一貫性が維持されません。 これはここで見ることができます:
は>>> import pandas as pd
>>> df = pd.DataFrame({'A': [ ['Other', 'Male', 'Female', 'Male', 'Other'], ['Female', 'Other', 'Male'] ]})
>>> df['B'] = df.A.apply(lambda x: pd.factorize(x)[0])
>>> df
A B
0 [Other, Male, Female, Male, Other] [0, 1, 2, 1, 0]
1 [Female, Other, Male] [0, 1, 2]
誰もが行の間で同じであるこのシリーズのエンコーディングを維持する方法を知っていますか?
get_dummiesは、ご利用の場合は動作しませんか? –
'get_dummies'アイデアをありがとう、私は本当にワンホットベクトルを作成する方法が好きです。残念ながら、私は、各要素のリストの長さが等しくない場合には、シリーズから1つのホットベクトルをすべて3Dテンソル型の形状に戻す方法をまだ考えていませんでした。 – chase