2017-12-18 1 views
0

16 개의 값 (0-15)을 가질 수있는 더미 변수를 만들어야하는데 더미 변수를 만들 때 반드시 16 개의 값을 모두 가져야합니다. 숫자 값에 더미 변수를 사용하여 고정 크기의 데이터 프레임을 만듭니다.

my_column 
0 3 
1 4 
2 7 
3 1 
4 9 

내가 내 더미 변수는 16 열 이상이 기대 - 사전 날에 고정 된 어떤 다른 값을, 컬럼의 이름에 숫자가 my_column의 값에 해당하지만, my_column 만있는 경우, 예를 들어, 16 개의 가능한 값에서 5 가지 값을 얻는다면, pd.get_dummies 메서드는 다음과 같이 (이 방법에서 예상 한대로) 단지 5 개의 열만 생성합니다 :

my_column 1 3 4 7 9 
0 3  0 1 0 0 0 
1 4  0 0 1 0 0 
2 7  0 0 0 1 0 
3 1  1 0 0 0 0 
4 9  0 0 0 0 1 

어떻게하면 다음 결과 중 하나를 얻을 수 있습니까?

my_column 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
    0 3  0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
    1 4  0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
    2 7  0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
    3 1  0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    4 9  0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 

답변

3

를 사용하여 컬럼에 get_dummies + reindex -

v = pd.get_dummies(df.my_column).reindex(columns=range(0, 16), fill_value=0) 

워드 프로세서에 따르면, reindex는 것 -

이 배치 옵션 충전 논리에 새로운 인덱스에 DataFrame을 Conform을 NA/이전 색인에 값이없는 위치의 NaN.

fill_value=0은 모두 누락 된 열을 0으로 채 웁니다. 당신이 당신의 anwer도 재 인덱싱을 설명해주십시오 수

v.insert(0, 'my_column', df.my_column) 

v = pd.concat([df, v], 1) # alternative to insert 

v 

    my_column 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
0   3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
1   4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 
2   7 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
3   1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
4   9 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 
+0

-

당신은 insert 또는 concat과 결과에 대한 원래의 열을 추가 할 수 있습니까? – Siddharth

+1

@Siddharth 문서에서 발췌 내용을 추가했는데 도움이 될까요? –

+0

@COLDSPEED 감사 – Siddharth

관련 문제