{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# 6장 자전거 대여 수요 예측 경진대회 환경 세팅된 노트북 양식","metadata":{"papermill":{"duration":0.026639,"end_time":"2021-08-16T04:01:01.662249","exception":false,"start_time":"2021-08-16T04:01:01.63561","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd #판다스 임포트\n\n#데이터 경로\ndata_path = '/kaggle/input/bike-sharing-demand/'\n\ntrain = pd.read_csv(data_path + 'train.csv') # 훈련 데이터\ntest = pd.read_csv(data_path + 'test.csv') # 테스트 데이터\nsubmission = pd.read_csv(data_path + 'sampleSubmission.csv') #제출 샘플 데이터\n","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:27:58.331971Z","iopub.execute_input":"2022-07-22T13:27:58.332281Z","iopub.status.idle":"2022-07-22T13:27:58.409724Z","shell.execute_reply.started":"2022-07-22T13:27:58.332232Z","shell.execute_reply":"2022-07-22T13:27:58.408811Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.shape, test.shape","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:28:01.057341Z","iopub.execute_input":"2022-07-22T13:28:01.057643Z","iopub.status.idle":"2022-07-22T13:28:01.065776Z","shell.execute_reply.started":"2022-07-22T13:28:01.057610Z","shell.execute_reply":"2022-07-22T13:28:01.065097Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:28:14.628688Z","iopub.execute_input":"2022-07-22T13:28:14.629412Z","iopub.status.idle":"2022-07-22T13:28:14.653394Z","shell.execute_reply.started":"2022-07-22T13:28:14.629374Z","shell.execute_reply":"2022-07-22T13:28:14.652512Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:29:26.878091Z","iopub.execute_input":"2022-07-22T13:29:26.878780Z","iopub.status.idle":"2022-07-22T13:29:26.889007Z","shell.execute_reply.started":"2022-07-22T13:29:26.878734Z","shell.execute_reply":"2022-07-22T13:29:26.888365Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.info()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:30:05.765086Z","iopub.execute_input":"2022-07-22T13:30:05.765534Z","iopub.status.idle":"2022-07-22T13:30:05.791235Z","shell.execute_reply.started":"2022-07-22T13:30:05.765502Z","shell.execute_reply":"2022-07-22T13:30:05.790570Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.info()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:30:41.306291Z","iopub.execute_input":"2022-07-22T13:30:41.306766Z","iopub.status.idle":"2022-07-22T13:30:41.321492Z","shell.execute_reply.started":"2022-07-22T13:30:41.306736Z","shell.execute_reply":"2022-07-22T13:30:41.320529Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#오브젝트 타입은 문자열이다. \nprint(train['datetime'][100]) #datetime의 100번째 원소\nprint(train['datetime'][100].split()) # 공백 기준으로 문자열 나누기\nprint(train['datetime'][100].split()[0]) #날짜\nprint(train['datetime'][100].split()[1]) #시간","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:32:35.761544Z","iopub.execute_input":"2022-07-22T13:32:35.761835Z","iopub.status.idle":"2022-07-22T13:32:35.769290Z","shell.execute_reply.started":"2022-07-22T13:32:35.761807Z","shell.execute_reply":"2022-07-22T13:32:35.768211Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(train['datetime'][100].split()[1]) #시간\nprint(train['datetime'][100].split()[1].split(\":\")) # \":\" 기준으로 문자열 나누기\nprint(train['datetime'][100].split()[1].split(\":\")[0]) # 시간\nprint(train['datetime'][100].split()[1].split(\":\")[1]) # 분\nprint(train['datetime'][100].split()[1].split(\":\")[2]) # 초","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:35:56.828907Z","iopub.execute_input":"2022-07-22T13:35:56.829474Z","iopub.status.idle":"2022-07-22T13:35:56.838339Z","shell.execute_reply.started":"2022-07-22T13:35:56.829424Z","shell.execute_reply":"2022-07-22T13:35:56.837279Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['date'] = train['datetime'].apply(lambda x: x.split()[0]) #날짜 피처 생성\n\n#연도, 월, 일, 시, 분, 초 피처를 차례로 생성\n#파생 피처\n\ntrain['year'] = train['datetime'].apply(lambda x: x.split()[0].split('-')[0]) \ntrain['month'] = train['datetime'].apply(lambda x: x.split()[0].split('-')[1])\ntrain['day'] = train['datetime'].apply(lambda x: x.split()[0].split('-')[2])\ntrain['hour'] = train['datetime'].apply(lambda x: x.split()[1].split(':')[0])\ntrain['minute'] = train['datetime'].apply(lambda x: x.split()[1].split(':')[1])\ntrain['second'] = train['datetime'].apply(lambda x: x.split()[1].split(':')[2])\n\n                                         ","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:58:22.899062Z","iopub.execute_input":"2022-07-22T13:58:22.899733Z","iopub.status.idle":"2022-07-22T13:58:22.972582Z","shell.execute_reply.started":"2022-07-22T13:58:22.899686Z","shell.execute_reply":"2022-07-22T13:58:22.971812Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from datetime import datetime #데이트타임 이포트\nimport calendar\n\nprint(train['date'][100]) #날짜\nprint(datetime.strptime(train['date'][100], '%Y-%m-%d')) #datetime 타입을 변경\n#정수로 요일 반환\n\nprint(datetime.strptime(train['date'][100], '%Y-%m-%d').weekday())\n#문자열로 요일 반환\n      \nprint(calendar.day_name[datetime.strptime(train['date'][100], '%Y-%m-%d').weekday()])","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:58:33.418219Z","iopub.execute_input":"2022-07-22T13:58:33.419016Z","iopub.status.idle":"2022-07-22T13:58:33.427752Z","shell.execute_reply.started":"2022-07-22T13:58:33.418973Z","shell.execute_reply":"2022-07-22T13:58:33.427062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['weekday'] = train['date'].apply(lambda dateString:\n                                      calendar.day_name[datetime.strptime(dateString, \"%Y-%m-%d\").weekday()])","metadata":{"execution":{"iopub.status.busy":"2022-07-22T14:03:50.881787Z","iopub.execute_input":"2022-07-22T14:03:50.882082Z","iopub.status.idle":"2022-07-22T14:03:51.080476Z","shell.execute_reply.started":"2022-07-22T14:03:50.882055Z","shell.execute_reply":"2022-07-22T14:03:51.079797Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['season'] = train['season'].map({1: 'Spring', 2: 'Summer', 3: 'Fall', 4: 'Winter' })\n\ntrain['weather'] = train['weather'].map({1: 'Clear',\n                                         2: 'Mist, Few clouds',\n                                         3: 'Light Snow, Rain, Thunderstorm',\n                                         4: 'Heavy Rain, Thunderstorm, Snow, Fog'})\ntrain.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T14:16:07.217976Z","iopub.execute_input":"2022-07-22T14:16:07.218302Z","iopub.status.idle":"2022-07-22T14:16:07.255518Z","shell.execute_reply.started":"2022-07-22T14:16:07.218269Z","shell.execute_reply":"2022-07-22T14:16:07.254946Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T14:05:16.122654Z","iopub.execute_input":"2022-07-22T14:05:16.123338Z","iopub.status.idle":"2022-07-22T14:05:16.154782Z","shell.execute_reply.started":"2022-07-22T14:05:16.123295Z","shell.execute_reply":"2022-07-22T14:05:16.153878Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}