나는 Excel에서이 테이블을 가지고 :하나의 셀에서 여러 값으로 하나의 핫 인코딩을 수행하려면 어떻게해야합니까?
id class
0 2 3
1 1 3
2 3 5
지금, 내가 파이썬에서 '특별'한 - 뜨거운 인코딩을 수행합니다. 첫 번째 테이블의 각 ID에는 두 개의 숫자가 있습니다. 각 숫자는 클래스 (class1, class2 등)에 해당합니다. 두 번째 테이블은 각 id에 대해 행의 각 숫자가 해당 클래스 열에 나타나고 다른 열은 단지 0이되는 첫 번째 테이블을 기반으로 작성됩니다. 예를 들어, id 0의 숫자는 2와 3입니다. 2는 class2에 배치되고 3은 class3에 배치됩니다.
id class1 class2 class3 class4 class5
0 0 2 3 0 0
1 1 0 3 0 0
2 0 0 3 0 5
내 이전 솔루션에
foo = lambda x: pd.Series([i for i in x.split()])
result=onehot['hotel'].apply(foo)
result.columns=['class1','class2']
pd.get_dummies(result, prefix='class', columns=['class1','class2'])
결과 :
이class_1 class_2 class_3 class_3 class_5
0 0.0 1.0 0.0 1.0 0.0
1 1.0 0.0 0.0 1.0 0.0
2 0.0 0.0 1.0 0.0 1.0
(class_3가 나타납니다 클래스 1, 4, 5는 결과는 같아야합니다 0의 기본을 얻을 두번). 이 문제를 해결하려면 어떻게해야합니까? (이 단계가 끝나면 원하는 형식으로 변환 할 수 있습니다.)
@FengLi 그냥 머리를. 당신이했던 것처럼'lambda' 함수를 저장하는 것은 그들의 목적을 무효로 만듭니다. 대신에'def'를 사용할 수 있습니다. – SvbZ3r0