2017-10-21 13 views
1

데이터 프레임에 더미 변수로 변환하려는 범주 형 변수가 있습니다. 이 열은 쉼표로 구분 그러나 여러 값 가지고 결국쉼표로 구분 된 문자열의 팬더 열을 더미 변수로 변환

0 'a' 
1 'a,b,c' 
2 'a,b,d' 
3 'd' 
4 'c,d' 

는 I 가능한 각 이산 값의 바이너리 열을 가지고 싶어하는 단계; 즉, 최종 열 수는 원래 열의 고유 값 수와 같습니다. 각 분리 된 값을 얻기 위해 split()을 사용해야하지만 이후에는 무엇을해야할지 확신하지 못한다고 생각합니다. 어떤 힌트를 주셔서 감사합니다!

편집 : 추가 트위스트. 열에 null 값이 있습니다. 그리고 코멘트에 대한 응답으로, 다음은 원하는 출력입니다. 감사!

a b c d 
0 1 0 0 0 
1 1 1 1 0 
2 1 1 0 1 
3 0 0 0 1 
4 0 0 1 1 
+1

당신은 당신이 당신은 더미 변수를 표현하려는 구체적으로 무엇을 명확히해야합니다 – bunji

+0

을 제공 한 예에 대한 예상 출력을 제공하시기 바랍니다 수 있습니다. 그것은 수학적 개념이지만 파이썬의 가변 시스템의 현실을 충족시켜야합니다. – jxramos

답변

1

사용 str.get_dummies

df['col'].str.get_dummies(sep=',') 

    a b c d 
0 1 0 0 0 
1 1 1 1 0 
2 1 1 0 1 
3 0 0 0 1 
4 0 0 1 1 
+0

나는 어리 석을 느낍니다. 그러나 이것은 정확하게 내가하려고 한 일입니다. 고맙습니다! – breakbotz

+0

그렇게해서는 안됩니다. 사용 가능한 모든 기능을 알고있는 사람은 거의 없습니다. 우리 중 나머지는 학습의 다른 단계에 있습니다.) 모두 최고 – Vaishali

+0

이것은 분명 할 수 있지만 데이터가 쉼표와 공백으로 구분 된 경우 포함하십시오. 즉, 'sep =', ''그렇지 않으면 중복 열로 끝납니다. – Huey