pandas 100제: 판다스 연습문제와 풀이 · 2장
011–020 데이터 살펴보기
head, tail, dtypes, describe, value_counts, unique, nunique, mean, sample 연습문제
처음 받은 데이터를 훑어보는 함수들입니다. 실무에서 가장 자주 치는 코드이기도 합니다.
준비 코드
이 장의 문제는 아래 코드를 먼저 실행한 상태에서 풉니다.
Pythonimport pandas as pd
import numpy as np
df = pd.DataFrame({
'name': ['김민준', '이서연', '박지호', '최수아', '정민서', '강도윤', '윤하은', '임시우'],
'class': ['A', 'B', 'A', 'C', 'B', 'C', 'A', 'B'],
'kor': [85, 92, 58, 77, 66, 90, 73, 81],
'eng': [78, 88, 64, 95, 59, 70, 82, 91],
'math': [92, 75, 49, 88, 71, 66, 95, 60],
})
011. 앞부분 보기
df의 처음 3행을 보이세요.
정답 보기
Pythondf.head(3)
결과 name class kor eng math
0 김민준 A 85 78 92
1 이서연 B 92 88 75
2 박지호 A 58 64 49
head()만 쓰면 5행입니다.
012. 뒷부분 보기
df의 마지막 2행을 보이세요.
정답 보기
Pythondf.tail(2)
결과 name class kor eng math
6 윤하은 A 73 82 95
7 임시우 B 81 91 60013. 열 이름 목록
df의 열 이름을 리스트로 구하세요.
정답 보기
Pythondf.columns.tolist()
결과['name', 'class', 'kor', 'eng', 'math']014. 열별 자료형
df의 열별 자료형을 확인하세요.
정답 보기
Pythondf.dtypes
결과name object
class object
kor int64
eng int64
math int64
dtype: object
문자열 열은 object로 보입니다.
015. 요약 통계
수학 점수의 개수, 평균, 표준편차, 사분위수를 한 번에 구하세요.
정답 보기
Pythondf['math'].describe()
결과count 8.000000
mean 74.500000
std 16.274432
min 49.000000
25% 64.500000
50% 73.000000
75% 89.000000
max 95.000000
Name: math, dtype: float64016. 범주별 개수
반별 학생 수를 구하세요.
정답 보기
Pythondf['class'].value_counts()
결과class
A 3
B 3
C 2
Name: count, dtype: int64
많은 순으로 정렬되어 나옵니다.
017. 고유한 값
반 이름의 종류와 종류 수를 구하세요.
정답 보기
Pythondf['class'].unique(), df['class'].nunique()
결과(array(['A', 'B', 'C'], dtype=object), 3)018. 평균과 최댓값
국어 점수의 평균과 최댓값을 구하세요.
정답 보기
Pythondf['kor'].mean(), df['kor'].max()
결과(77.75, 92)019. 여러 열의 평균
세 과목 각각의 평균을 구하세요.
정답 보기
Pythondf[['kor', 'eng', 'math']].mean()
결과kor 77.750
eng 78.375
math 74.500
dtype: float64020. 무작위로 뽑기
df에서 3행을 무작위로 뽑으세요. 결과가 늘 같도록 random_state=0을 주세요.
정답 보기
Pythondf.sample(3, random_state=0)
결과 name class kor eng math
6 윤하은 A 73 82 95
2 박지호 A 58 64 49
1 이서연 B 92 88 75
random_state를 고정하면 다시 실행해도 같은 행이 나옵니다.