| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 프로그래머스lv2
- 백준
- STL
- OpenCV
- 동적바인딩
- 깊은복사
- 기본클래스
- 제네릭프로그래밍
- C++
- 점프투파이썬
- 데이터사이언스
- c++코딩테스트합격자되기
- 연산자오버로딩
- list comprehension
- OOP
- 11382번
- 코드잇
- 참조자
- 코딩테스트
- 포인터
- 스택
- 주피터
- 다형성
- 람다식
- 인프런
- 유도클래스
- 얕은복사
- python
- 상속
- 멤버함수로구현
- Today
- Total
WjExplor Story
DataFrame 과 불린 인덱싱 본문
DataFrame에서 특정 조건에 맞는 데이터를 필터링하는 방법을 알아보자.
Numpy array에서 불린 인덱싱을 진행하였다.
유사한 개념이다.
예를 들어 칼로리가 500 미만의 상품들만 데이터를 확인하고 싶다면
우선 칼로리 컬럼을 먼저 받아보자
burger_df['calories']

이렇게 Pandas Series 가 나온다. 1차원 Numpy array 랑 꽤나 유사하다.
여기에 불린 연산을 해보자.
burger_df['calories'] < 500

각 제품이 500 칼로리 미만인지 아닌지에 대한 불린 값들이 쭉 나온다.
True 값이면 500 미만 칼로리 제품이라는 것이다. False 이면 500 이상 칼로리 제품이라는 것이다.
type(burger_df['calories'] < 500)
# pandas.core.series.Series
type을 확인해 보니 Pandas Series라고 한다.
Pandas Series 에다가 불린 연산을 하니 새로운 Pandas Series 가 만들어졌다.
인덱스로 있었던 상품명들이 그대로 남아있다.
Numpy array 에도 했던 거처럼 이걸로 masking , 즉 필터링을 하면 된다.
burger_df.loc[burger_df['calories'] < 500]

그러면 True 였던 상품만 필터링되어서 나오게 된다.
이런 식으로 특정 조건에 따라 필터링하는 건 데이터 분석할 때 많이 쓰는 기법이다. 꼭 이해하고 넘어가야 한다.
만약 모든 칼럼이 아닌 특정 칼럼만 보고 싶은 경우
burger_df.loc[burger_df['calories'] < 500,'protein']
burger_df.loc[burger_df['calories'] < 500,['protein','category']]
단일 컬럼 혹은 칼럼 리스트를 작성하면 칼럼 일부분만 확인할 수 있다.

burger_df.loc[burger_df['calories'] < 500,'protein':'sodium']

아니면 데이터 슬라이싱으로 데이터를 일부분만 확인할 수 있다.
Tip
특정 컬럼만 받아 오고 싶다면 loc을 써야 하는데
만일 그냥 로우만 필터링하고 싶은 거라면 loc을 없애고 대괄호 안에 바로 써서 할 수 있다.
burger_df[burger_df['calories'] < 500]

또 다른 표현으로는
mask = burger_df['calories'] < 500
burger_df[mask]

이렇게 mask 도 할 수 있다.
burger_df.loc[mask,'calories':'fat']

mask 변수를 사용하여 슬라이싱을 하면 해당 True 조건에서 슬라이싱 한 칼럼 데이터를 확인할 수 있다.
'Python > Python : Jupyter' 카테고리의 다른 글
| [인프런] 파이썬 머신러닝 완벽 가이드 1장 (0) | 2025.10.09 |
|---|---|
| DataFrame 데이터 수정 및 추가하기 (1) | 2025.09.25 |
| DataFrame 데이터 불러오기 & 데이터 일부만 선택하기 (0) | 2025.09.24 |
| Pandas 와 DataFrame (1) | 2025.09.24 |
| 그래프에 한글로 된 텍스트 넣기 (0) | 2025.09.24 |