PROGRESS
4 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 04 #318
학생별(가로 방향) 평균을 계산하여 새로운 열을 추가하려고 합니다. 빈칸에 채워보세요.
main.py
import pandas as pd
data = {
"수학": [90, 80, 70, 85, 90],
"영어": [85, 95, 75, 77, 98],
"과학": [100, 90, 80, 65, 85]
}
df = pd.DataFrame(data, index=["민수", "영희", "지우", "채린", "예림"])
# 행(가로) 방향 평균을 계산하여 "학생별 평균"이라는 이름의 새로운 "열"로 추가
df["학생별 평균"] = df.mean(axis = )
print(df)
HINT
힌트: axis=0은 열(세로) 방향을, axis=1은 행(가로) 방향을 의미합니다.
실행 결과 예시
수학 영어 과학 학생별 평균 민수 90 85 100 91.666667 영희 80 95 90 88.333333 지우 70 75 80 75.000000 채린 85 77 65 75.666667 예림 90 98 85 91.000000
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
axis=1로 행(가로) 방향 평균 구하기
mean(axis=1)은 각 행을 가로로 횡단하며 평균을 계산합니다.
axis 방향 복습
수학 영어 과학
← axis=1 →
민수 ↑ 90 85 100 → 평균 = 91.67
서희 | 80 95 90 → 평균 = 88.33
지연 axis 70 75 80 → 평균 = 75.00
채린 =0 85 77 65 → 평균 = 75.67
서림 ↓ 90 98 85 → 평균 = 91.00
코드 분석
df["학생별 평균"] = df.mean(axis=1)
| axis | 방향 | 계산 대상 | 결과 |
|---|---|---|---|
axis=0 (기본값) |
↓ 위→아래 | 과목별 평균 | 열 개수만큼 |
axis=1 |
→ 왼→오른 | 학생별 평균 | 행 개수만큼 |
동작 과정 (민수의 경우)
민수: (90 + 85 + 100) / 3 = 91.666667
행 추가 vs 열 추가 비교
| 작업 | 코드 | 사용하는 것 |
|---|---|---|
| 행 추가 (과목별 평균) | df.loc["과목 평균"] = df.mean() |
loc + axis=0 |
| 열 추가 (학생별 평균) | df["학생별 평균"] = df.mean(axis=1) |
df["열이름"] + axis=1 |
넘파이와 동일한 axis 체계
# 넘파이
np.mean(score, axis=1) # 행별 평균
# 판다스
df.mean(axis=1) # 행별 평균
넘파이와 판다스는 같은 axis 규칙을 사용합니다.
💡 핵심: axis=0은 열 방향(과목별), axis=1은 행 방향(학생별) 계산입니다.