본문 바로가기

Programing Language/Python

pandas dataframe에 multiple condition on multiple column

반응형

판다스에서 DataFrame에서 특정 Column에 조건을 넣는 가장 쉬운 방법은 다음과 같다.

df1 = df[(df.a != -1)]

뜻은 df의 a열에 조건을 넣은 경우이다. 다음의 경우와 동치이다.

df1 = df[(df['a'] != -1)]

원리는 (df['a'] != -1)가 해당 조건에 맞는 index의 true, false를 ndarray형으로 리턴하는 방식이다. 따라서 다중 조건을 넣는 것은 다음과 같이 응용할 수 있다.

df1 = df[(condition1) & (condition1)]

파이썬의 if문에서 and를 사용하는 것과 다르다는 것에 유의하자.



이번에는 파이썬에서 특정 Column만 부르는 것을 살펴보자.

사실 이미 위의 예제들에서 사용하고 있었는데 df.a 또는 df['a']와 같이 한다, 여러 열을 부를 경우, df[['a','b']]와 같이 부르면 된다.


그렇다면 이 두가지를 동시에 사용하기 위해서는 어떻게 해야 할까......?


loc를 이용한 방법과 query를 이용한 방법이 있다.


1안) using loc

df.loc[df.C==1, ['B','C']]

2안) using query

df[['B','C']].query('C == 1')

오늘은 여기까지 끄읕~!


[출처]


https://stackoverflow.com/questions/34964534/display-two-columns-with-a-condition-in-pandas

반응형