2016-08-01 2 views
2

문서 용어 pandas Dataframe이 주어졌습니다. 각 셀은 발생 행렬로 표시됩니다.Python Pandas - 일련의 행에서 모든 열의 1을 포함하는 최소 열을 선택하는 방법

  clover seed sowing stolon 
    1489  1  0  0  0 
    1488  1  0  0  0 
    9677  0  0  1  0 
    9996  1  0  0  1 
    0557  0  1  0  0 
    0564  1  0  0  0 
    0958  0  1  1  0 
    1272  1  0  0  0 
    1965  1  1  1  1 
    4326  1  1  1  0 
    4531  1  1  1  0 
    6026  0  0  1  0 
    6030  0  1  0  0 

'클로버'와 관련하여 DataFrame을 모든 열에 1을 포함하는 최소 3 개의 행으로 줄이십시오. 현재 예 클로버, 시드 조 3 행 1965 4326 대 1S를 포함 4531 결과가 될 것이다 :

  clover seed sowing stolon 
    1272  1  0  0  0 
    1965  1  1  1  1 
    4326  1  1  1  0 
    4531  1  1  1  0 

버리기 무관 한 컬럼 :

  clover seed sowing 
    1272  1  0  0 
    1965  1  1  1 
    4326  1  1  1 
    4531  1  1  1 

관하여를 임의의 수의 열 효율적인 방법으로이 선택 과정을 어떻게 수행 할 수 있습니까?

+0

원하는 df를 게시하십시오. –

답변

0

나는 이런 식으로 할 거라고 :

relevant = ['clover', 'seed', 'sowing'] 
df[df[relevant].all(1)][relevant] 

enter image description here

0

또 다른 가능성은 마스크로 df.sum(axis=1)>=3을 사용하는 것입니다. 이것에 체인 drop :

>>> df[df.sum(axis=1)>=3].drop('stolon', axis=1) 
     clover seed sowing 
1965  1  1  1 
4326  1  1  1 
4531  1  1  1 

이보다 일반적인 만들려면 : nn3을 교체하십시오. 예를 들어 목록을 전달하여 둘 이상의 열을 삭제할 수 있습니다. drop(['stolon','seed'])

관련 문제