반응형
Chapter 02. 데이터 핸들링을 위한 Numpy와 Pandas
데이터 병합과 요약 (Numpy와 Pandas)
1. 데이터 병합 (merge 함수와 JOIN)
- merge 함수는 SQL의 JOIN 기능과 동일하게 작동하여 두 데이터프레임을 결합합니다.
- 병합 시 기준이 되는 열(조인 키)을 설정해야 하며, 다양한 인자를 통해 조인 조건을 지정할 수 있습니다.
주요 인자들:
- left, right: 병합할 두 개의 데이터프레임
- on: 공통된 키 컬럼 (두 데이터프레임 모두 포함)
- left_on, right_on: 키 컬럼 이름이 서로 다를 때 사용
- left_index, right_index: 인덱스를 조인 키로 활용할 때 사용
- how: 조인 방식 지정 (기본값은 "inner")
- inner: 공통 키만 병합
- left: 왼쪽 데이터프레임 키 기준
- right: 오른쪽 데이터프레임 키 기준
- outer: 두 데이터프레임 키의 합집합 기준
2. 데이터 집계 (Aggregation)
데이터를 요약하고 통계값을 계산하는 다양한 메서드를 배웠습니다.
- 기본 집계 함수: sum, mean, median, min/max, std/var, count, cumsum, quantile, describe
- 빈도 집계:
- value_counts() → 특정 열의 고유 값 빈도 집계
- normalize=True → 비율 반환
- dropna=False → 결측치 포함 가능
- cut()과 함께 사용하면 구간별 빈도도 집계 가능
- groupby 메서드:
- 조건 변수에 따라 데이터를 그룹화 후 통계량 산출 (Split → Apply → Combine)
- 여러 조건/대상 변수를 지정할 수 있으며, 결과가 멀티 인덱스가 될 수 있음
- reset_index()로 단일 인덱스로 변환 가능
- agg() 메서드를 활용하면 여러 함수를 동시에 적용하거나 열별로 다른 함수 적용 가능
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
이번 강의에서는 단순한 데이터 조회에서 한 단계 나아가, 데이터를 합치고 요약하는 과정이 분석의 핵심 도구라는 걸 알게 되었다. SQL에서 JOIN을 쓰듯이 Pandas의 merge를 사용하면 다양한 조건으로 데이터를 유연하게 연결할 수 있어 실제 프로젝트에서 데이터셋을 정리할 때 매우 유용할 것 같다.
특히 how 인자를 통해 inner/outer join을 자유롭게 바꿀 수 있다는 점이 인상적이었다. 실제 분석 과정에서는 데이터 누락이나 중복 문제가 자주 발생하는데, 이 인자를 어떻게 쓰느냐에 따라 결과가 크게 달라질 수 있으니 주의 깊게 다뤄야겠다고 느꼈다.
또한 groupby와 agg는 단순 요약을 넘어서, 조건별로 원하는 방식으로 데이터를 분석할 수 있는 강력한 도구라는 걸 실감했다. 멀티 인덱스는 다소 낯설게 느껴졌지만, reset_index()로 깔끔하게 바꿀 수 있어 활용도가 높다고 생각했다.
결국 이번 강의는 데이터 병합 = 분석 준비, 데이터 요약 = 인사이트 도출의 출발점이라는 점을 확실히 보여줬다고 본다.
🚀 적용점
- 실제 프로젝트 데이터셋 두 개를 불러와서 merge로 inner/left/right/outer join을 각각 실습해본다.
- on, left_on, right_on 인자를 다르게 적용해보며 다양한 병합 방식을 체득한다.
- groupby와 agg를 활용해 카테고리별 평균, 최대값, 개수 등을 계산하는 연습을 해본다.
- value_counts(normalize=True)로 비율 집계 실습을 해보고, SQL GROUP BY와 비교하며 더 직관적으로 이해한다.
- 멀티 인덱스로 결과가 나오는 경우 reset_index()를 습관적으로 활용해 가독성을 높인다.
👉 다음 단계에서는 이 집계와 병합을 기반으로, 더 심화된 데이터 분석 및 전처리 기법으로 확장될 수 있으니 이번 개념을 확실히 다지는 것이 중요하다.
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 03-1 (0) | 2025.09.27 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-6 (0) | 2025.09.26 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-4 (0) | 2025.09.24 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-3 (0) | 2025.09.23 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-2 (1) | 2025.09.23 |