2017-04-21 2 views
2

이것은 쉽게 질문해야하지만 어떤 이유로 온라인에서 답을 찾을 수 없습니다. 나는 더미 변수로 구성 DataFrame 열이 :이진 변수의 DataFrame 열을 더미 변수의 여러 열로 바꾸는 방법

import pandas as pd 

foo = pd.Series([6,7,8,3]) 
foo1 = bob.apply(lambda x: bin(x)[2:].zfill(4)) 
foo1 

0 0110 
1 0111 
2 1000 
3 0011 

내가 원하는 내가 어떤 결과를 get_dummies를 사용하려고했습니다

A B C D 
0 1 1 0 
0 1 1 1 
1 0 0 0 
0 0 1 1 

처럼 보이는 4 × 4 데이터 프레임 :

foo1.str.get_dummies() 

0110 0111 1000 0011 
1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 

str.split 그리고 열을 일련의 목록으로 만드는 것은 작동하지 않습니다. 어떻게해야합니까?

답변

3

이 작업을 시도 할 수 있습니다 :

# convert the series to str type; 
# extract all characters with regex .; 
# unstack to wide format 
foo1.astype(str).str.extractall('(.)')[0].unstack() 

enter image description here

2

이것은 foo1foo의 초기 단계를 건너 뛰고 foo

foo.apply(lambda x: pd.Series(list('{:04b}'.format(x)))) 

    0 1 2 3 
0 0 1 1 0 
1 0 1 1 1 
2 1 0 0 0 
3 0 0 1 1 
2
In [49]: pd.DataFrame(foo1.apply(list).values.tolist()) 
Out[49]: 
    0 1 2 3 
0 0 1 1 0 
1 0 1 1 1 
2 1 0 0 0 
3 0 0 1 1 
에서 바로 거기에 당신을 얻을 것이다
관련 문제