오답노트

[Pandas] 조건 조회 본문

Python/Pandas

[Pandas] 조건 조회

권멋져 2022. 8. 3. 22:28

조건 확인

시리즈를 조회하는 문법에 바로 조건절을 사용하면 된다.

결과는 Boolean으로 출력된다.

부정 기호는 ~ 이다. 부정하고 싶은 조건문에는 괄호를 쳐야만한다.

dataframe['Status'] > 2

'''''''

0     False
1     False
2      True
3     False
4      True
5     False
6     False
7     False
8     False
9      True
10    False
11    False

'''''''

~ (dataframe['Status'] > 2)

'''''''

0      True
1      True
2     False
3      True
4     False
5      True
6      True
7      True
8      True
9     False
10     True
11     True

'''''''

 

여러 조건을 조회 할때는 &(and) 와 |(or) 기호를 사용한다.

단, 조건절 마다 괄호로 묶어야 실행된다.

 

(dataframe['Status'] >1) & (dataframe['Status'] < 4)

'''''''

0     False
1      True
2      True
3     False
4      True
5      True
6     False
7     False
8      True
9      True
10    False
11     True

'''''''

(dataframe['Status'] >1) | (dataframe['Status'] < 4)

'''''''

0     True
1     True
2     True
3     True
4     True
5     True
6     True
7     True
8     True
9     True
10    True
11    True

'''''''

 

 

isin

isin은 인자로 리스트를 받는다. 인자로 받은 리스트에 해당하는 값이 시리즈에 존재하면 True 존재하지 않으면 False를 출력한다.

 

dataframe['Status'].isin([1,4])

'''''''

0      True
1     False
2     False
3      True
4     False
5     False
6      True
7      True
8     False
9     False
10     True
11    False

'''''''

 

between

between은 범위를 정해서 범위 내에 존재하는 값은 True, 존재하지 않으면 False를 출력한다.

인자로는 시작값, 마지막값을 받고, 마지막 값을 포함한다.

 

dataframe['Status'].between(1,2)

'''''''

0      True
1      True
2     False
3      True
4     False
5      True
6      True
7      True
8      True
9     False
10     True
11     True


'''''''

 

loc

loc는 위에서 설명한 조건 조회에서 True만을 조회한다.

함수가 아니라 대괄호를 사용해야한다.

 

dataframe.loc[dataframe['Status'].between(1,2)]

4.1 loc에서 True만 출력한 결과

dataframe.loc[:2,['Serise1','Serise2']]
# Serise1 과 Serise2 에 대해 2개의 행을 출력

위 코드와 같이 사용할 수 도 있다.

loc[row,col] 이라고 생각하면 된다.

그리고 row에서 슬라이싱 문법을 보면 2를 포함한다.

 

dataframe.loc[df['Serise1'] < 10, 'Serise2']] = 100
# Serise1에서 10 미만인 수인 행에 대해 Serise2 열의 값을 모두 100으로 바꾼다.

위 코드는 특정 조건의 행들의 열 값을 바꿔준다.

 

iloc

dataframe.iloc[:3,[1,2]]
# 1번째 2번째 열에 대해서 2개의 행 조회

loc 과 비슷하지만, column의 숫자로 조회가능하다는 차이점이 있다.

그리고 슬라이싱 문법을 보면 loc와 달리 파이썬 기본 슬라이싱 문법을 따르고 있다.