실기
연습 화면을 불러오는 중…
연습 화면을 불러오는 중…
Python으로 준비하는 실기
코딩이 처음이라면 한 줄 실행부터.
설명 옆에서 직접 써 보고, 결과를 확인하며 배웁니다.
설치·가입 없이 이 화면에서 실행
코드를 실행해 안녕하세요를 출력해요.
처음 보는 코드를 읽고, 오류 메시지를 읽고, 짧은 코드를 스스로 고칠 수 있다.
표에서 원하는 숫자 하나를 뽑아내는 길을 스스로 찾을 수 있다.
전처리 조건을 그대로 코드로 옮겨, 문제가 요구한 자리수로 값을 낼 수 있다.
학습 데이터로 모델을 만들고 평가 데이터의 예측을 규격에 맞는 CSV 로 낼 수 있다.
검정통계량과 p-value 를 구하고 그 결과를 과장 없이 문장으로 옮길 수 있다.
도움말과 파일을 확인하며 혼자 문제를 풀고 제출할 수 있다.
배운 내용을 실전으로
bike-weather.csv 는 731일 전체의 날씨이고, bike-rentals.csv 는 그중 700일의 대여 기록이다. 두 파일의 공통 키는 date 다.
(1) 양쪽에 모두 있는 날짜만 남도록 두 파일을 병합하고, 병합 결과의 행 수를 정수로 답안에 적는다.
(2) 병합 결과에서 weather 가 1 인 날의 casual + registered 평균을 소수점 둘째 자리까지 반올림해 답안에 적는다.
how='inner' 는 양쪽에 다 있는 키만, 'left' 는 왼쪽 전부, 'outer' 는 합집합이다. 발문의 "양쪽에 모두" 가 inner 를 가리킨다.weather == 1 인 행만 남기고 casual + registered 를 더한 뒤 평균을 낸다. 두 열을 더하지 않고 한 열만 쓰면 다른 값이 나온다.import pandas as pd
weather = pd.read_csv('bike-weather.csv')
rentals = pd.read_csv('bike-rentals.csv')
merged = weather.merge(rentals, on='date', how='inner')
print(len(merged))
clear = merged[merged['weather'] == 1]
print(round((clear['casual'] + clear['registered']).mean(), 2))"양쪽에 모두 있는 날짜만" 이 곧 how='inner' 다. how='left' 로 두면 대여 기록이 없는 31일이 NaN 인 채로 남아 731행이 되고, 그 NaN 이 casual + registered 에서도 NaN 이 되어 평균의 분모가 달라진다. 병합한 직후 행 수를 찍어 보는 것이 이 유형에서 가장 값싼 검산이다.
how='left' 로 붙여 한쪽에만 있는 날짜를 남겼다left 병합은 대여 기록이 없는 31일을 NaN 으로 채워 남긴다. 행 수가 731 이 되고, NaN 이 섞인 합은 다시 NaN 이라 평균의 분모까지 달라진다.casual 과 registered 중 한 열만 평균 냈다총 대여량은 두 열의 합이다. 한 열만 보면 값이 크게 작아지는데, 숫자 자체는 그럴듯해서 검산 없이는 잡히지 않는다.