반응형
Chapter 02. 데이터 핸들링을 위한 Numpy와 Pandas
데이터 필터링 (Numpy와 Pandas)
Pandas에서 데이터를 효율적으로 선택하고 관리하는 방법인 데이터 필터링을 다루었다.
1. loc와 iloc 인덱서
- loc: 명시적 인덱스(라벨) 를 이용해 데이터를 선택. 행과 열의 이름을 직접 지정할 수 있으며, 조건 기반 필터링에도 자주 사용된다. 예를 들어 특정 학생 이름이나 제품명을 기준으로 데이터를 선택할 때 유용하다.
- iloc: 암묵적 인덱스(숫자) 를 이용해 데이터를 선택. 데이터프레임의 순서를 기반으로 행과 열을 지정한다.
- 차이점: loc는 슬라이싱 시 마지막 인덱스를 포함하지만, iloc는 포함하지 않는다. 즉, df.loc[1:3]은 1~3까지 포함하지만, df.iloc[1:3]은 1~2까지만 포함된다.
2. 행 및 열 선택과 제거
- 열 선택 방법즉, 대괄호 하나 []는 시리즈, 대괄호 두 개 [[]]는 데이터프레임을 반환한다는 점을 기억해야 한다.
df['열 이름'] # 시리즈 반환 df[['열 이름']] # 데이터프레임 반환 df[['열1', '열2']] # 여러 열 선택 시 데이터프레임 반환 - 행 및 열 제거(drop 메서드)
- drop() 메서드로 행이나 열을 제거할 수 있다.
- axis=0 → 행 제거, axis=1 → 열 제거
- inplace=True → 원본 데이터를 수정, inplace=False → 수정된 복사본 반환
- inplace 옵션은 판다스의 여러 함수에서 공통적으로 등장하므로, 원본 데이터 유지 여부를 반드시 염두에 두어야 한다.
3. 조건 연산을 이용한 필터링
- Pandas에서는 다양한 연산자를 통해 원하는 조건의 데이터만 추출할 수 있다.
- 비교 연산자: ==, >, >= 등을 사용해 특정 값과 비교 가능
- between(a, b): 값이 a와 b 사이에 있으면 True 반환
- isin(array): 값이 특정 배열 안에 포함되어 있는지 확인
- isnull(): 값이 결측치인지 확인
- 논리 연산자: &(and), |(or)을 통해 조건 결합 가능
예시
df[df['age'] > 30] # 나이가 30 초과인 행만 선택
df[df['city'].isin(['Seoul', 'Busan'])] # 특정 도시 포함 여부 필터링
df[df['score'].between(50, 80)] # 점수가 50~80 사이인 데이터
df[df['email'].isnull()] # 이메일이 결측치인 데이터
이러한 조건 연산은 SQL의 WHERE 절과 매우 유사하기 때문에 데이터 전처리 과정에서 자연스럽게 활용할 수 있다.
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 데이터를 효율적으로 다루기 위해 필수적인 도구인 loc/iloc 인덱서, drop 메서드, 조건 필터링을 배웠다.
단순히 데이터를 조회하는 수준을 넘어서, 내가 원하는 조건에 맞춰 데이터를 선별하고 정리하는 과정이 데이터 분석의 출발점이라는 걸 느꼈다.
특히 loc와 iloc의 차이는 작은 문법 차이처럼 보이지만, 실제 프로젝트에서 인덱스를 이름으로 관리하느냐 숫자로 관리하느냐에 따라 가독성과 유지보수성이 달라질 수 있다는 점이 인상적이었다.
또 drop 메서드에서 inplace 옵션을 잘못 쓰면 원본 데이터가 날아갈 수 있으니, 실습을 통해 안전하게 다루는 습관을 들여야겠다고 생각했다.
조건 연산자 부분은 SQL에서의 WHERE 절과 비슷하다는 점에서 직관적으로 다가왔다.
앞으로 데이터 전처리를 할 때 불필요한 데이터를 제거하거나 원하는 조건만 추출하는 데 자주 활용할 수 있을 것 같다.
🚀 적용점
- 실제 데이터셋을 불러와서 loc와 iloc으로 같은 행을 다르게 불러오는 연습을 해본다.
- drop(inplace=True)와 drop(inplace=False)의 차이를 직접 확인하면서 안전하게 사용하는 습관을 기른다.
- 조건 연산자를 활용해 데이터셋에서 특정 조건(예: 나이 > 30, 결측치 있는 행만 등)에 맞는 데이터를 필터링하는 실습을 반복한다.
- SQL을 사용해본 경험이 있다면, Pandas의 조건 필터링과 비교하면서 더 직관적으로 이해할 수 있다.
다음 강의에서는 더 심화된 데이터 핸들링 기법으로 확장될 예정이라, 이번에 배운 필터링 방법을 확실히 다지고 넘어가는 것이 중요하다!
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-5 (0) | 2025.09.25 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-4 (0) | 2025.09.24 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-2 (1) | 2025.09.23 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-1 (0) | 2025.09.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-7 (0) | 2025.09.21 |