서울 열린 데이터 광장에서 제공하는 공공자전거 대여 이력 정보 데이터를 활용하여 기본적인 데이터 탐색을 진행해보았다.
데이터 출처 : 서울 열린 데이터 광장 > 서울특별시 공공자전거 대여이력 정보
http://data.seoul.go.kr/dataList/OA-15182/F/1/datasetView.do
pivot data 생성
In [1]:
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
# 노트북 안에 그래프를 그리기 위해
%matplotlib inline
# 그래프에서 격자로 숫자 범위가 눈에 잘 띄도록 ggplot 스타일을 사용
plt.style.use('ggplot')
# 그래프에서 마이너스 폰트 깨지는 문제에 대한 대처
mpl.rcParams['axes.unicode_minus'] = False
!apt -qq -y install fonts-nanum
# 한글 깨짐 문제 해결
import matplotlib.font_manager as fm
fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf'
font = fm.FontProperties(fname=fontpath, size=9)
plt.rc('font', family='NanumBarunGothic')
mpl.font_manager._rebuild()
In [2]:
# colab 에서 google drive 접근
from google.colab import drive
drive.mount('/content/gdrive')
In [0]:
bike = pd.read_csv('/content/gdrive/My Drive/data/bicycle-hourtime-201905-test.csv', parse_dates=["대여일자"] ,encoding='cp949')
In [0]:
bike["년"] = bike["대여일자"].dt.year
bike["월"] = bike["대여일자"].dt.month
bike["일"] = bike["대여일자"].dt.day
pivot data 생성¶
In [5]:
bike.columns
Out[5]:
In [6]:
bike_sum_1 = pd.pivot_table(bike, index=["지구","주중주말구분"],values=["이용건수"],aggfunc=np.sum)
bike_sum_1.rename(columns={'이용건수':'이용건수합계'}, inplace=True)
# bike_sum['이용률'] = bike_sum['이용건수합계']/bike_sum['거치대수합계']
bike_sum_1
Out[6]:
In [7]:
# bike_sum_2 = bike.groupby(bike['대여소번호'])
bike_sum_2 = pd.pivot_table(bike, index=["지구","대여소번호"],values=["거치대수"],aggfunc=np.average)
# bike_sum_1.rename(columns={'이용건수':'이용건수합계'}, inplace=True)
# bike_sum['이용률'] = bike_sum['이용건수합계']/bike_sum['거치대수합계']
bike_sum_2
bike_sum_3 = pd.pivot_table(bike_sum_2,index=["지구"], values=["거치대수"],aggfunc=np.sum)
bike_sum_3
Out[7]:
In [8]:
bike_sum_1.columns
Out[8]:
In [9]:
bike_sum_3['거치대수']
Out[9]:
In [10]:
bike_sum_1['지구별거치대수']= pd.Series([266,355,474,266,355,474], index=[('공원',0),('상업',0),('주거',0),('공원',1),('상업',1),('주거',1)])
bike_sum_1['이용률']=bike_sum_1['이용건수합계']/bike_sum_1['지구별거치대수']
bike_sum_1 #지구별
bike_sum_1.sort_values(by=['주중주말구분'],axis=0) # 주중주말구분별
Out[10]:
주중 이용률에서 상업, 주거 이용률이 공원 이용률보다 1.8배 정도 높다.
관련 글 모아보기
[DataSicence/Data Analysis] - [python] 공공자전거 데이터 분석(1) - 데이터 형태 그래프 출력
[DataSicence/Data Analysis] - [python] 공공자전거 데이터 분석(2) - histogram
[DataSicence/Data Analysis] - [python] 공공자전거 데이터 분석(3) - 상관관계 분석
[DataSicence/Data Analysis] - [python] 공공자전거 데이터 분석(4) - pivot data 생성
'Study > Data Analysis' 카테고리의 다른 글
[ML] t-SNE 특징 및 예제 (0) | 2021.01.31 |
---|---|
[python] 공공자전거 데이터 분석(3) - 상관관계 분석 (0) | 2020.04.27 |
[python] 공공자전거 데이터 분석(2) - histogram (0) | 2020.04.26 |