Pandas
챕터 3-5 ~ 8
불리언 인덱싱 (Boolean Indexing)
- 특정 조건에 맞는 행만 선택하는 방식
- True/False 값을 가진 리스트(Series)를 전달하여 '참'인 데이터만 추출
- 조건을 이용하여 데이터프레임에서 특정 조건을 만족하는 행을 선택하는 방법
- 데이터를 필터링하거나 원하는 조건을 만족하는 행을 추출할 수 있음
- 주로 불리언(Boolean) 값을 가지는 조건식을 사용하여 데이터프레임을 인덱싱하는 방법
- 조건식에 따라 각 행이 True 또는 False로 평가되며 이를 바탕으로 데이터프레임을 필터링
df[조건식]
- 여러 조건을 연결할 때는 & (and), | (or) 를 사용
- 각 조건은 반드시 소괄호 ()로 감싸야 한다.
- '체(Sieve)'로 걸러내는 작업
- isin() 매소드 활용 가능
- Series(시리즈)나 DataFrame(데이터프레임)의 값들 중에서 특정 값이나 리스트 안에 포함된 값들을 찾아내는 메소드.
- 원하는 조건에 해당하는 데이터를 빠르게 필터링하거나 선택 가능
- 각 행이 리스트에 포함되면 True, 없으면 False를 반환
df['컬럼명'].isin([값1, 값2, 값3])
데이터 병합 (Merge & Concat)
- Merge (조인)
- 관계형 데이터베이스(SQL)의 Join과 동일
- 공통된 키(Key)를 기준으로 옆으로 합친다.
pd.merge(left, right, on='공통컬럼', how='방법')
- left와 right: 병합할 데이터프레임 중 병합되는 기준이 되는 왼쪽(left)과 오른쪽(right) 데이터프레임
- 방법(how): inner(교집합), outer(합집합), left(왼쪽 기준), right(오른쪽 기준)
- inner: 공통된 키(열) 기준. 교집합
- outer: 공통된 기 기준. 합집합
- left: 왼쪽 데이터프레임의 모든 행 포함하고 오른쪽 데이터프레임은 공통된 키에 해당하는 행만 포함
- right: 오른쪽 데이터프레임의 모든 행 포함하고 왼쪽 데이터프레임은 공통된 키에 해당하는 행만 포함
- on: 병합 기준이 되는 열 이름 (열 이름의 리스트)
- left on: 왼쪽 데이터프레임에서 병합할 열 이름이 다른 경우 사용
- right on: 오른쪽 데이터프레임에서 병합할 열 이름이 다른 경우 사

- Concat (연결)
- 데이터프레임을 위아래로 혹은 좌우로 연결 가능
- axis :
- 연결하고자 하는 축(방향)을 지정
- axis=0 (기본값) : 위아래로 연결하는 경우 (행 추가)
- axis=1 : 좌우로 연결 (열 추가)
- 연결하고자 하는 축(방향)을 지정
- ignore_index:
- False (기본값) : 연결된 결과 데이터프레임의 인덱스 유지
- True :
- 새로운 인덱스 생성
- 기존 인덱스 무시하고 새롭게 인덱스 설
pd.concat([df1, df2], axis=0)
데이터 집계 (Aggregation & Groupby)
- Group by()
- 데이터프레임을 그룹화
- '끼리끼리' 모으는 작업
- 그룹 단위로 데이터를 분할(split), 적용(apply), 결합(combine)하는 기능을 제공
-
- 그룹 생성: 기준 열(혹은 열들)을 지정하여 데이터프레임을 그룹으로 나눕니다.
- 그룹에 대한 연산 수행: 그룹 단위로 원하는 연산(평균, 합, 개수 등)을 수행합니다.
- 결과 결합: 각 그룹의 연산 결과를 하나의 데이터프레임으로 결합하여 새로운 데이터프레임을 생성합니다.
-
- 통계량(평균, 합계 등)을 계산
df.groupby('기준컬럼')['계산컬럼'].연산함수()
- 여러 개의 집계를 한 번에 보고 싶다면 .agg(['mean', 'sum', 'count'])를 사용
- .agg()
- 하나 이상의 연산을 특정 축(기본은 행)을 따라 적용
- 주로 groupby()와 함께 쓰여 그룹별 통계량을 구할 때 가장 많이 활용
- 활용법
- ① 여러 개의 함수를 동시에 적용: 리스트 형태([])로 함수 이름을 전달하면, 모든 컬럼에 대해 해당 통계량 계산
- ② 컬럼별로 다른 함수 적용 (딕셔너리 활용): 컬럼 이름을 키(Key)로, 적용할 함수를 값(Value)으로 입력
- ③ 사용자 정의 함수(UDF) 적용: 판다스 기본 함수 외에 내가 직접 만든 함수에도 사용 가능
df.agg(['연산1', '연산2'])
df.groupby('기준').agg({'컬럼': '연산'})
- Pivot Table() 함수
- 데이터프레임에서 피벗 테이블을 생성하는 데 사용
- 주어진 데이터를 사용자가 원하는 형태로 재배치하여 요약된 정보를 보기 쉽게 제공
- 데이터를 재구성하여 요약, 집계된 정보를 보여주는 테이블 형태
- df.pivot_table(index='행기준', columns='열기준', values='계산값', aggfunc='연산')
- index: 행(Row) 방향으로 세울 기준 (왼쪽 세로)
- columns: 열(Column) 방향으로 세울 기준 (위쪽 가로)
- values: 집계할 값 (안쪽에 채워질 숫자)
- aggfunc: 어떤 계산을 할 것인가 (기본값은 mean)
데이터 정렬 (Sorting)
- 특정 컬럼의 값을 기준으로 데이터를 오름차순 또는 내림차순으로 나열
- solt_values() 함수: 컬럼 기준 정렬
df.sort_values(by='컬럼명', ascending=True)
- by: 기준이 될 컬럼 이름을 넣습니다. 리스트 형태(['A', 'B'])로 여러 개 지정도 가능합니다.
- sort_index() 함수: 인덱스 기준 정렬
df.sort_index(ascending=True)
- ascending: True면 오름차순(기본값), False면 내림차순
'개인공부' 카테고리의 다른 글
| 데이터 전처리 & 시각화 26.01.16(금) (0) | 2026.01.17 |
|---|---|
| [개인공부] 주말 ETL 4주차 26.01.17(토)~18(일) (0) | 2026.01.17 |
| 데이터 전처리 & 시각화 26.01.14(수) (0) | 2026.01.14 |
| [개인공부] 주말 ETL 3주차 26.01.10(토)~11(일) (1) | 2026.01.11 |
| [개인공부] 주말 ETL 1주차 25.12.27(토)~28(일) (0) | 2025.12.28 |