오답노트
[Pandas] 조건 조회 본문
조건 확인
시리즈를 조회하는 문법에 바로 조건절을 사용하면 된다.
결과는 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)]
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와 달리 파이썬 기본 슬라이싱 문법을 따르고 있다.
'Python > Pandas' 카테고리의 다른 글
[Pandas] 요소 값 변경 (0) | 2022.08.03 |
---|---|
[Pandas] 데이터 프레임 변경 (0) | 2022.08.03 |
[Pandas] 데이터 프레임 통계 메소드 (0) | 2022.08.02 |
[Pandas] 데이터 프레임의 고유 값 (0) | 2022.08.02 |
[Pandas] 데이터 프레임 정렬 (0) | 2022.08.02 |