import pandas as pd
data = {
"수학": [85, 92, 78, 95, 88],
"영어": [90, 85, 88, 100, 75],
"과학": [80, 95, 82, 90, 85]
}
df = pd.DataFrame(data, index=["민수", "영희", "지우", "채린", "예림"])
# 전체 데이터의 요약 통계량 확인 (개수, 평균, 표준편차, 사분위수 등)
print(df.())
힌트: "묘사하다" 또는 "설명하다"라는 뜻을 가진 describe() 함수를 사용합니다.
수학 영어 과학 count 5.000000 5.000000 5.000000 mean 87.600000 87.600000 86.400000 std 6.542171 9.126883 6.107373 min 78.000000 75.000000 80.000000 25% 85.000000 85.000000 82.000000 50% 88.000000 88.000000 85.000000 75% 92.000000 90.000000 90.000000 max 95.000000 100.000000 95.000000
describe()로 통계 요약 한눈에 보기
describe()는 데이터프레임의 모든 숫자 열에 대해 8가지 통계량을 한 번에 계산해줍니다.
기본 문법
df.describe()
결과 해석
수학 영어 과학
count 5.000000 5.000000 5.000000
mean 87.600000 87.600000 86.400000
std 6.542171 9.126883 6.107373
min 78.000000 75.000000 80.000000
25% 85.000000 85.000000 82.000000
50% 88.000000 88.000000 85.000000
75% 92.000000 90.000000 90.000000
max 95.000000 100.000000 95.000000
각 항목 설명
| 항목 | 의미 | 수학 예시 |
|---|---|---|
| count | 데이터 개수 | 5명 |
| mean | 평균 | 87.6점 |
| std | 표준편차 (흩어진 정도) | 6.54 |
| min | 최소값 | 78점 |
| 25% | 하위 25% 지점 (Q1) | 85점 |
| 50% | 중간값 = median (Q2) | 88점 |
| 75% | 상위 25% 지점 (Q3) | 92점 |
| max | 최대값 | 95점 |
표준편차(std)란?
데이터가 평균에서 얼마나 퍼져 있는지를 나타내는 값입니다.
std가 작다 → 데이터가 평균 근처에 모여 있음 (균일)
std가 크다 → 데이터가 넓게 퍼져 있음 (편차 큼)
예시:
- 수학 std = 6.54 → 점수가 비교적 고르게 분포
- 영어 std = 9.13 → 점수 격차가 상대적으로 큼
사분위수(Quartile)란?
데이터를 4등분하는 기준점입니다.
수학 점수를 크기순 정렬:
[78, 85, 88, 92, 95]
↑ ↑ ↑
25% 50% 75%
(Q1) (Q2) (Q3)
Q1(25%) = 85: 하위 25% 지점
Q2(50%) = 88: 중간값 (median)
Q3(75%) = 92: 상위 25% 지점
활용 예시
# 특정 열만 describe
df["수학"].describe()
# 특정 통계량만 추출
df.describe().loc["mean"] # 모든 열의 평균
df.describe().loc["max"] # 모든 열의 최대값
💡 핵심: describe()는 데이터를 처음 받았을 때 분포를 빠르게 파악하는 필수 함수입니다.