2017-10-14 3 views
-1

값 내가 파이썬에서 팬더를 사용하고 dataframe을하고 같은팬더 : 특정 컬럼과 행을 계산하기 위해 여러 열을 컨디셔닝하는 방법

age portembarked fare numparentschildren passengerclass sex 

0  1    1  1     1    1 1 
1  2    2  1     1    2 2 
2  1    1  1     1    1 2 
... 

나는라는 페이지의 조건 할 열 이름의 목록을 "부모": [ "나이", "요금", "섹스"] 내가 데이터를 "parent_vals"라는이 열 각으로 원하는 값 [1, 2, 2]

어떻게 각 열이 값과 같도록 데이터 프레임의 행 수를 계산합니까?

예를 들어 나는이 실제로 지원되지 않습니다 ^, 뭔가를 할 것 팬더 표기에 대해

count = df[df[parents] == parent_vals].count() 

을 찾고 있어요.

count = df[df["age"]==1 & df["fare"]==2 & df["sex"]==2].count() 

을하지만 "부모"의 특정 열이 더 큰를 통해 내가 루프로 변경됩니다 : 나는 내가 다음을 수행 할 수 있습니다 알고 부모 목록에 있던 정확히 알았다면 그리고이 예를 들어 1 을 반환 그래서 나는 그 목록을 참조하기를 원한다.

답변

0

IIUC를 사용하면 열을 인덱싱하고 비교 한 후 sum 수를 계산할 수 있습니다. 당신이 Invalid broadcasting comparison 오류가 발생하는 경우

df 
    age portembarked fare numparentschildren passengerclass sex 
0 1    1  1     1    1 1 
1 2    2  1     1    2 2 
2 1    1  1     1    1 2 

(df[parents] == [1, 2, 2]).all(1).sum() 
1 

, 솔루션 먼저 np.array에 목록을 변환 한 후 비교를하는 것 같다.


을 상세

df[parents] == [1, 2, 2] 
    age fare sex 
0 True True True 
1 True False True 
2 False False True 

(df[parents] == [1, 2, 2]).all(1) 
0  True 
1 False 
2 False 
dtype: bool 
+0

제가 잘못 방송 비교 얻을 [1, 2, 2] 블록 값 : K.P @/ –

+0

. 판다 업데이트; 'pip install --upgrade pandas' –

+0

@ K.P. 이 더미 행을 먼저 시도해보십시오. 작동하는 경우 데이터에 문제가 있으며 문제를 재현하는 예를 보여 주어야합니다. 그렇지 않으면 도움이되지 않습니다. –