2017-11-15 18 views
1

좋은 아침 챕스 조건에 따라 여러 부울 컬럼에 어떤 조건 (str.contains에 따라 부울 플래그 여러 열로 dataframe 열을 폭발파이썬 - 팬더 - DataFrame -

모든 파이썬 방식으로, 하나의 열을 폭발 이 경우)?

Position Letter 
1  a  
2  b  
3  c  
4  b  
5  b 

그리고이 달성하고 싶은 :

의 내가이 있다고 가정 해 봅시다 새로운 DF 열을 생성 명시 적으로

Position Letter is_a  is_b is_C 
1  a  TRUE  FALSE FALSE 
2  b  FALSE TRUE FALSE 
3  c  FALSE FALSE TRUE 
4  b  FALSE TRUE FALSE 
5  b  FALSE TRUE FALSE 

는 'ABC'를 통해 루프와 함께 할 수 및하지만, 팬더에 이미 내장 된 메서드가 있는지 궁금합니다. 가능한 값의 수와 새 열 수는 가변적입니다.

감사합니다.

+0

는 당신이 우리에게 당신이 지금까지 시도 것을 최소한의 예를 보여줄 수 있습니까? 다음을보십시오. https://stackoverflow.com/help/how-to-ask – DimKoim

+0

lt에 대한 문자 : df [lt] = df.Letter.str.contains (lt) – Trostis

답변

1

사용 Series.str.get_dummies() :

In [31]: df.join(df.Letter.str.get_dummies()) 
Out[31]: 
    Position Letter a b c 
0   1  a 1 0 0 
1   2  b 0 1 0 
2   3  c 0 0 1 
3   4  b 0 1 0 
4   5  b 0 1 0 

또는

In [32]: df.join(df.Letter.str.get_dummies().astype(bool)) 
Out[32]: 
    Position Letter  a  b  c 
0   1  a True False False 
1   2  b False True False 
2   3  c False False True 
3   4  b False True False 
4   5  b False True False