2017-10-09 11 views
3

제목이 본질적으로 내 문제를 파악합니다.여러 열에 동일한 값이 포함되어있는 경우 대형 데이터 프레임을 핫 인코딩하는 방법은 무엇입니까?

나는 데이터 프레임을 가지고 있으며 복수 열은 [0,1]과 같은 값을 가지며, 만약 내가 가서 df를 하나의 핫 엔코 드하면 동일한 이름을 가진 여러 개의 열을 가질 것이다.

지루한 솔루션은 수동으로 고유 한 열을 만드는 것이지만 매우 효율적이지는 않은 범주 형 58 개의 열이 있습니다.

이것이 도움이 될지 잘 모르겠지만, 여기 내 데이터 프레임의 head()입니다.

x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 ... z217 z218 z219 z220 z221 z222 subject phase state output 
0 0 0 1 -300.361218 0.886360 -2.590886 225.001899 0.006204 0.000037 -0.000013 ... 0.005242 0.024971 -1017.620978 -382.850838 -48.275711 -2.040336 A 3 B 0 
1 0 0 1 -297.126090 0.622211 -3.960940 220.179017 0.006167 -0.000014 -0.000003 ... 0.001722 0.023595 91.229094 24.802230 1.783950 0.022620 A 3 C 0 
2 0 0 1 -236.460253 0.423640 -12.656341 139.453445 0.006276 -0.000028 0.000022 ... -0.010894 -0.036318 -188.232347 -17.474861 -1.005571 -0.021628 A 3 B 0 
3 0 0 1 33.411458 2.854415 -1.962432 3.208911 0.009752 -0.000273 -0.000024 ... -0.034184 -0.047734 185.122907 -549.282067 542.193381 -178.049926 A 3 A 0 
4 0 0 1 -118.125214 2.009809 -3.291637 34.874176 0.007598 0.000001 -0.000022 ... 0.001963 0.004084 35.207794 -78.143166 57.084208 -13.700212 A 4 C 0 
+2

[최소, 완전하고 검증 예] (http://stackoverflow.com/help/mcve) 여기에 적용됩니다. 문제 입력에 대한 예를 입력하십시오 (여기에 열의 값이 0, 1, 2가 아닌 항목) 및보고자하는 결과 DF를 입력하십시오. 관계가없는 정보를 없애거나 열 두 개만 유지하십시오. – Prune

+0

나는 그것을 염두에 두겠다. 감사합니다. – madsthaks

답변

1

아마도 이미 pandas.get_dummies입니까? 그렇지 않은 경우이 함수는 범주 형 열을 여러 표시기 열로 변환합니다 (하나의 핫 인코딩).

이 함수에 대한 '접두사'인수가 있습니다.이 함수는 특별히 귀하의 경우에 존재합니다. 이것은 문자열 목록 일 수 있습니다 (길이는 데이터 프레임의 열 수와 같아야합니다). 귀하의 경우에는, 당신은 접두사에 열 이름을 매핑합니다 사전을 만들 수 있습니다. 그래서, 뭔가 같은 : x3_0, x3_1 ... x4_0, x4_1 ...

+0

이것은 정확히 내가 필요한 것입니다. 고마워요! – madsthaks

+0

@ madsthaks 내 대답을 수락 할 수 있다면 감사하겠습니다. – shikhanshu

0

같은

pd.get_dummies(df, prefix={'x3': 'x3', 'x4': 'x4'}) 

이 의지 추가 열 당신은 데이터를 읽을 수 있으며, 먼저 범주 변수의 모든 고유 값의 목록을 얻을. 그런 다음 고유 한 값 목록에 하나의 핫 인코더 객체 (예 : sklearn.preprocessing.CategoricalEncoder)를 맞출 수 있습니다.

이 방법은 열차 테스트 프레임 워크 또는 데이터를 청크로 읽을 때 도움이 될 수 있습니다. 이 모든 것을 독자적으로 수행하는 파이썬 모듈을 만들었습니다. 이 GitHub의 저장소에서 찾을 수 있습니다 - dummyPy

짧은 튜토리얼을이에 - How to One Hot Encode Categorical Variables in Python?