실기
연습 화면을 불러오는 중…
연습 화면을 불러오는 중…
Python으로 준비하는 실기
코딩이 처음이라면 한 줄 실행부터.
설명 옆에서 직접 써 보고, 결과를 확인하며 배웁니다.
설치·가입 없이 이 화면에서 실행
코드를 실행해 안녕하세요를 출력해요.
처음 보는 코드를 읽고, 오류 메시지를 읽고, 짧은 코드를 스스로 고칠 수 있다.
표에서 원하는 숫자 하나를 뽑아내는 길을 스스로 찾을 수 있다.
전처리 조건을 그대로 코드로 옮겨, 문제가 요구한 자리수로 값을 낼 수 있다.
학습 데이터로 모델을 만들고 평가 데이터의 예측을 규격에 맞는 CSV 로 낼 수 있다.
검정통계량과 p-value 를 구하고 그 결과를 과장 없이 문장으로 옮길 수 있다.
도움말과 파일을 확인하며 혼자 문제를 풀고 제출할 수 있다.
배운 내용을 실전으로
adult-jobs.csv 는 인구조사 표본 5,000행이다. workclass·occupation 의 빈칸은 원자료에 실제로 비어 있던 값이다.
(1) occupation 이 비어 있지 않은 행 중에서 - 가 들어 있는 값만 남기고, 그 값을 - 기준으로 나눈 맨 앞 조각으로 바꾼다. 가장 많이 나오는 조각의 행 수를 정수로 답안에 적는다.
(2) education 값이 th 로 끝나는 행의 hours_per_week 평균을 소수점 둘째 자리까지 반올림해 답안에 적는다.
value_counts(dropna=False) 로 결측이 몇 개인지 본다. NaN 에 .str 을 쓰면 결과가 NaN 이 되어 조용히 빠진다.df['occupation'].notna() 로 값이 있는 행만 남긴다.str.contains('-') 는 하이픈이 들어 있는 직업만 남긴다. Sales 처럼 하이픈이 없는 값은 여기서 빠진다.str.split('-').str[0] — 두 번째 .str[0] 은 리스트의 첫 칸 을 꺼내는 것이지 문자열의 첫 글자가 아니다.str.endswith('th') 는 값의 끝만 본다. contains('th') 는 가운데에 th 가 있는 값까지 끌어온다.import pandas as pd
df = pd.read_csv('adult-jobs.csv')
jobs = df[df['occupation'].notna()].copy()
hyphen = jobs[jobs['occupation'].str.contains('-')].copy()
hyphen['head'] = hyphen['occupation'].str.split('-').str[0]
print(int(hyphen['head'].value_counts().max()))
th = df[df['education'].str.endswith('th')]
print(round(th['hours_per_week'].mean(), 2))str.split('-') 는 리스트를 만들고 .str[0] 이 그 첫 칸을 꺼낸다. str[0] 만 쓰면 문자열의 첫 글자 라 전혀 다른 집계가 된다. endswith('th') 는 10th·11th·12th·9th 처럼 th 로 끝나는 학력만 고른다. 빈칸은 read_csv 가 NaN 으로 읽으므로 .str 접근자를 쓰기 전에 먼저 걸러야 한다.
.str.split('-').str[0] 대신 .str[0] 만 썼다pandas 에서 .str[0] 은 문자열의 첫 글자 다. 하이픈으로 나눈 첫 조각을 꺼내려면 먼저 split 한 뒤 다시 .str[0] 을 써야 한다. 한 글자로 묶이면 집계가 통째로 달라진다.