PROGRESS
3 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 03 #317
데이터프레임에서 열 평균을 구한 다음 새로운 행으로 추가하는 프로그램입니다. 빈칸을 채워보세요.
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()
print(df)
HINT
힌트: 데이터프레임에서는 행이나 열에 접근할때 인덱스(숫자)를 이용할 수도 있고 이름(라벨)을 이용할 수 있습니다. 이름을 이용할 때는 loc을 사용합니다.
실행 결과 예시
수학 영어 과학 민수 90.0 85.0 100.0 영희 80.0 95.0 90.0 지우 70.0 75.0 80.0 채린 85.0 77.0 65.0 예림 90.0 98.0 85.0 과목 평균 83.0 86.0 84.0
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
loc으로 새로운 행 추가하기
loc은 이름(라벨)으로 데이터프레임의 행이나 열에 접근하는 속성입니다. 새로운 인덱스를 지정하면 행을 추가할 수 있습니다.
기본 문법
df.loc["새인덱스"] = 값
코드 분석
df = pd.DataFrame(data, index=["민수", "서희", "지연", "채린", "서림"])
df.loc["과목 평균"] = df.mean()
동작 과정
원본: 행 추가 후:
수학 영어 과학 수학 영어 과학
민수 90 85 100 민수 90.0 85.0 100.0
서희 80 95 90 서희 80.0 95.0 90.0
지연 70 75 80 지연 70.0 75.0 80.0
채린 85 77 65 채린 85.0 77.0 65.0
서림 90 98 85 서림 90.0 98.0 85.0
과목 평균 83.0 86.0 84.0
↑ 새 행 추가!
df.mean()의 기본 동작 (axis=0)
axis를 지정하지 않으면 열(세로) 방향 평균을 계산합니다.
수학: (90+80+70+85+90) / 5 = 83.0
영어: (85+95+75+77+98) / 5 = 86.0
과학: (100+90+80+65+85) / 5 = 84.0
데이터 타입 자동 변환
평균값은 실수(float)이므로, 행이 추가되면 기존 정수 데이터도 float로 자동 변환됩니다.
- 변환 전:
90(int) - 변환 후:
90.0(float)
loc vs iloc 비교
| 속성 | 접근 방식 | 예시 |
|---|---|---|
loc |
이름(라벨)으로 접근 | df.loc["민수"] |
iloc |
번호(인덱스)로 접근 | df.iloc[0] |
df.loc["민수"] # "민수" 행의 데이터
df.iloc[0] # 0번째 행의 데이터 (같은 결과)
💡 핵심:
df.loc["새이름"] = 값으로 새 행을 간단히 추가할 수 있습니다.