[Pandas] 원하는 값으로 필터링
- Python/Pandas
- 2021. 4. 11.
반응형
반응형
데이터프레임에서 특정조건의 데이터를 필터링하는 2가지 방법을 소개하겠습니다.
- isin()을 이용하는 방법
- 비교 조건문을 이용하는 방법
다음과 같이 소문자, 대문자로 이루어진 데이터프레임을 만들었습니다.
df = pd.DataFrame({'alpha' : ['a','b','c','d','e'],'beta':['A','B','C','D','E']})
df
isin()을 이용하는 방법
isin()을 하면 해당 원소가 있는지를 판단해줍니다.
즉, 해당 값이 있으면 True, 없으면 False를 반환합니다.
df['alpha'].isin(['a','b'])
이것을 이용하면 필터링이 가능합니다.
df[df['alpha'].isin(['a','b'])]
and(&),or(|) 도 가능합니다.
df[df['alpha'].isin(['a','b']) & df['beta'].isin(['A'])]
df[df['alpha'].isin(['a','b']) | df['beta'].isin(['A','B','C'])]
비교 조건문을 이용하는 방법
이번엔 비교 조건문을 사용하는 방법인데 일일이 다 써야하는 불편함이 있지만 isin 처럼 판다스의 메쏘드가 아닌
파이썬의 내장기능이므로 다양하게 쓸 수 있습니다.
위에서 했던 예제와 같은 결과가 나오게끔 해보겠습니다.
df[(df['alpha']=='a') | (df['alpha']=='b') & (df['beta']=='A') & (df['beta']=='B') & (df['beta']=='C')]
df[(df['alpha']=='a') | (df['alpha']=='b') | (df['beta']=='A') | (df['beta']=='B') | (df['beta']=='C')]
수학시간에 배운 집합의 개념과 같습니다. and와 or를 가지고 필터링을 할 수 있습니다.
주의해야할 것은 조건문마다 괄호를 반드시 해야 합니다.
안 그러면 오류가 나옵니다.
df[(df['alpha']=='a') | (df['alpha']=='b') & (df['beta']=='A') & df['beta']=='B'& (df['beta']=='C')]
필터링하는 방법 2가지를 알아보았는데요.
도움이 되셨으면 좋겠습니다.
관련 포스팅
[Python/Pandas] - [Pandas] DataFrame 결측치(NaN) 처리
[Python/Pandas] - [Pandas] DataFrame 시간 인덱스 나누기
'Python > Pandas' 카테고리의 다른 글
[Pandas] 시간데이터 만들기(date_range) (0) | 2021.05.03 |
---|---|
[Pandas] 데이터프레임 엑셀(xlsx) 저장, 불러오기 (0) | 2021.04.17 |
[Pandas]데이터프레임 순회하기 (0) | 2021.04.10 |
[Pandas] DataFrame을 딕셔너리로 변환 (0) | 2021.04.04 |
Pandas에서 이동평균선 구하기 (0) | 2021.03.20 |