반응형
데이터를 정렬하고, 통계를 내고, 그룹으로 묶을 때 사용하는 필수 명령어들입니다.
1. 데이터 줄세우기 (정렬)
- df.sort_index(): 행 이름(인덱스)을 기준으로 가나다/알파벳 순으로 정렬합니다.
- 옵션: axis=1을 넣으면 열(컬럼) 이름을 기준으로 정렬합니다.
- df.sort_values(by='컬럼명'): 특정 컬럼 안에 있는 실제 데이터 값을 기준으로 정렬합니다.
- 옵션: ascending=False를 추가하면 내림차순(큰 것부터)으로 정렬됩니다. 결측치는 항상 맨 마지막에 옵니다.
2. 기술 통계 및 집계 (데이터 요약)
- df.sum() / df.mean() / df.median(): 각각 합계, 평균, 중앙값을 구합니다.
- df.max() / df.min(): 최대값, 최소값을 구합니다.
- df.count(): 결측치(빈칸)를 제외한 진짜 데이터의 개수만 셉니다.
- df.idxmax() / df.idxmin(): 최대값 또는 최소값이 있는 곳의 인덱스(위치)를 찾아줍니다.
- df.unique() / df.nunique(): 중복을 제거한 고유값들이 무엇인지, 그리고 그 고유값이 몇 개인지 알려줍니다.
- df.agg(['min', 'max', 'mean']): 여러 개의 통계값을 한 번에 뽑아보고 싶을 때 사용합니다. (딕셔너리 형태로 컬럼마다 다른 통계를 낼 수도 있습니다.)
3. 데이터 묶어서 분석하기 (그룹화 & 피벗)
- df.groupby('기준컬럼')['계산할컬럼'].집계함수(): 성별, 부서별 등 특정 기준(범주)으로 데이터를 묶어서 집계합니다.
- 예시: df.groupby('부서')['연봉'].mean() (부서별 연봉 평균)
- df.pivot_table(index='행기준', columns='열기준', values='계산대상', aggfunc='집계함수'): 엑셀의 피벗 테이블처럼 데이터를 2차원 표 형태로 예쁘게 재배치하여 요약해 줍니다.
4. 데이터 모양 바꾸기 (구간 나누기 & 일괄 적용)
- pd.cut(데이터, bins=[구간리스트], labels=[이름리스트]): 수치형 데이터(예: 나이, 점수)를 특정 구간으로 잘라서 그룹(예: 유아, 청년, 장년)으로 만들어 줍니다.
- df['컬럼명'].apply(함수명): for문(반복문)을 쓰지 않고도, 데이터의 모든 원소나 행/열 단위로 내가 만든 함수를 일괄적으로 쫘악 적용시켜 줍니다.
💡 1단계: 마법의 공통 옵션 3가지 (파라미터)
통계 함수 괄호 () 안에 넣어서 계산 방식을 내 맘대로 조종하는 옵션들입니다.
| 옵션 이름 | 기능 요약 | 사용 예시 및 설명 |
| skipna | 결측치(빈칸) 무시 여부 | skipna=True(기본값): 빈칸 빼고 계산 skipna=False: 빈칸 포함 (결과가 NaN이 될 수 있음) |
| axis | 계산 방향 (가로/세로) | axis=0(기본값): 위아래 열(컬럼)별로 계산 axis=1: 좌우 행별로 계산 |
| numeric_only | 숫자 데이터만 계산할지 여부 | numeric_only=True: 에러 방지를 위해 숫자 컬럼만 골라서 계산 numeric_only=False(기본값) |
📊 2단계: 주요 기술 통계 함수 모음
데이터프레임(df)이나 시리즈(df['컬럼명']) 뒤에 붙여서 사용하는 함수들입니다.
1. 대푯값 (데이터의 중심)
- sum(): 합계
- mean(): 평균
- median(): 중위수 (크기순으로 세웠을 때 정가운데 값)
- mode(): 최빈값 (가장 자주 등장하는 값)
2. 데이터의 흩어짐 (분포)
- var(): 분산 (평균에서 얼마나 떨어져 있는지)
- std(): 표준편차 (분산의 제곱근, 실제 데이터 오차 범위)
- quantile(): 분위수 (상위 25%, 50% 등 자르는 기준점)
3. 가장 큰 값 & 작은 값
- max(): 최대값
- min(): 최소값
- idxmax(): 최대값이 위치한 인덱스(이름표)
- idxmin(): 최소값이 위치한 인덱스(이름표)
4. 데이터 개수 세기
- count(): 결측치(빈칸)를 제외한 진짜 데이터 원소 개수
- unique(): 중복을 제거한 고유값 종류 (Series에만 사용 가능)
- nunique(): 중복을 제거한 고유값의 총 개수
🚀 실전 조합 예시 (복붙용)
Python
# 1. 숫자 데이터만 골라서, 빈칸 무시하고 열별 평균 구하기
df.mean(numeric_only=True, skipna=True)
# 2. 행별로 총 합계 구하기 (빈칸이 있으면 결과도 NaN)
df.sum(axis=1, skipna=False)
# 3. '연봉' 컬럼의 최대값, 최소값, 평균을 한 번에 뽑아보기
df['연봉'].agg(['min', 'max', 'mean'])
반응형
'두두 IT > 파이썬' 카테고리의 다른 글
| [PYTHON 시각화] Matplotlib 개요 (0) | 2026.05.07 |
|---|---|
| [PYTHON-Pandas 04-01]데이터프레임 합치기 (concat, join, merge) (0) | 2026.05.06 |
| [PYTHON-Pandas 03-01] 데이터 정렬부터 그룹화, 피벗 테이블 (0) | 2026.05.04 |
| [PYTHON-Pandas 02-02] DataFrame 명령어 모음 (0) | 2026.05.04 |
| [PYTHON-Pandas 02-01] 데이터 분석의 꽃, DataFrame 완벽 정복! (0) | 2026.05.04 |