2017-11-17 4 views
1

同じ列ヘッダーを持つ2つのデータフレームがあります。私は両方のホットエンコードを実行したいと思います。私はそれらを一つずつ行うことはできません。私は2つのデータフレームを一緒に追加してから、ホットエンコーディングしてから、2つのデータフレームに分割して、それぞれにヘッダを付けてください。2データフレームを結合してから分離する

以下のコードは、マージする代わりにホットエンコードを1つずつ実行して、ホットエンコードします。キーで

train = pd.get_dummies(train, columns= ['is_discount', 'gender', 'city']) 
test = pd.get_dummies(test, columns= ['is_discount', 'gender', 'city']) 

答えて

1

使用CONCATは、分割すなわち

#Example Dataframes 
train = pd.DataFrame({'x':[1,2,3,4]}) 
test = pd.DataFrame({'x':[4,2,5,0]}) 

# Concat with keys 
temp = pd.get_dummies(pd.concat([train,test],keys=[0,1]), columns=['x']) 

# Selecting data from multi index 
train,test = temp.xs(0),temp.xs(1) 

出力:

 
#Train 
    x_0 x_1 x_2 x_3 x_4 x_5 
0 0 1 0 0 0 0 
1 0 0 1 0 0 0 
2 0 0 0 1 0 0 
3 0 0 0 0 1 0 

#Test 
    x_0 x_1 x_2 x_3 x_4 x_5 
0 0 0 0 0 1 0 
1 0 0 1 0 0 0 
2 0 0 0 0 0 1 
3 1 0 0 0 0 0 
関連する問題