2017-11-17 2 views
1

동일한 열 헤더가있는 2 개의 데이터 프레임이 있습니다. 나는 둘 다에 핫 인코딩을 수행하고 싶다. 나는 그들을 하나씩 수행 할 수 없다. 두 개의 데이터 프레임을 추가 한 다음 핫 인코딩을 수행 한 다음 두 개의 데이터 프레임으로 헤더를 각각 다시 나눠서 추가하고 싶습니다.2 데이터 프레임을 결합한 다음 분리하십시오.

아래의 코드는 병합하는 대신 하나씩 핫 인코딩을 수행 한 다음 핫 인코딩합니다. 키

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 
관련 문제