서울 열린 데이터 광장에서 제공하는 공공자전거 대여 이력 정보 데이터를 활용하여 기본적인 데이터 탐색을 진행해보았다.
데이터 출처 : 서울 열린 데이터 광장 > 서울특별시 공공자전거 대여이력 정보
http://data.seoul.go.kr/dataList/OA-15182/F/1/datasetView.do
histogram
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 [4]:
bike.describe
Out[4]:
In [0]:
bike["년"] = bike["대여일자"].dt.year
bike["월"] = bike["대여일자"].dt.month
bike["일"] = bike["대여일자"].dt.day
In [6]:
bike.shape
Out[6]:
histogram¶
In [7]:
fig, axes = plt.subplots(nrows=2,ncols=2)
fig.set_size_inches(12, 10)
sns.boxplot(data=bike,y="이용건수",orient="v",ax=axes[0][0])
sns.boxplot(data=bike,y="이용건수",x="주중주말구분",orient="v",ax=axes[0][1])
sns.boxplot(data=bike,y="이용건수",x="대여시간",orient="v",ax=axes[1][0])
sns.boxplot(data=bike,y="이용건수",x="대여구분코드_new",orient="v",ax=axes[1][1])
axes[0][0].set(ylabel='이용건수',title="이용건수")
axes[0][1].set(xlabel='요일', ylabel='Count',title="주중주말구분 대여량")
axes[1][0].set(xlabel='대여시간', ylabel='Count',title="시간별 대여량")
axes[1][1].set(xlabel='대여구분코드_new', ylabel='Count',title="대여구분코드에 따른 대여량")
Out[7]:
In [8]:
bike["요일"].value_counts()
Out[8]:
대여시간별 그래프¶
In [9]:
fig,(ax1,ax2,ax3,ax4,ax5, ax6, ax7)= plt.subplots(nrows=7)
fig.set_size_inches(18,40)
sns.pointplot(data=bike, x="대여시간", y="이용건수", ax=ax1)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="성별_New", ax=ax2)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="요일_New", ax=ax3)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="연령대코드_New", ax=ax4)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="대여구분코드_new", ax=ax5)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="주중주말구분", ax=ax6)
sns.pointplot(data=bike, x="대여시간", y="이용건수", hue="지구", ax=ax7)
Out[9]:
관련 글 모아보기
[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' 카테고리의 다른 글
[python] 공공자전거 데이터 분석(4) - pivot data 생성 (0) | 2020.04.28 |
---|---|
[python] 공공자전거 데이터 분석(3) - 상관관계 분석 (0) | 2020.04.27 |
[python] 공공자전거 데이터 분석(1) - 데이터 형태, 그래프 출력 (0) | 2020.04.25 |