본문 바로가기

Data Analysis/공공 데이터

[공공 데이터] 따릉이 데이터 분석 1 (데이터 확인 / 질문하기)

728x90

따릉이 데이터 분석

데이터 출처 : https://data.seoul.go.kr/dataList/datasetList.do

 

서울 열린데이터 광장에서 제공하는 서울시 공공자전거 이용현황 데이터
- Data 1 : 서울특별시 공공자전거 대여소 정보
- Data 2 : 서울특별시 공공자전거 대여소별 이용정보(월별)
- Data 3 : 서울특별시 공공자전거 이용정보(시간대별)

이용건수 : 해당 시간대에 대여한 건수의 합

그룹명 없음, 대여소명 없음, 정비센터 등인 경우 테스트 및 정비 목적이므로 분석에 제외하여 활용

1. 데이터 확인

# 기본 패키지 불러오기

import math
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use("seaborn") 
sns.set(font_scale = 1)
sns.set_style("whitegrid")

import plotly.express as px

import chart_studio.plotly as py
import cufflinks as cf
cf.go_offline(connected=True)

import plotly.graph_objects as go
import plotly.offline as pyo
pyo.init_notebook_mode()

from plotly.subplots import make_subplots

import missingno as msno

import warnings # 경고 메세지 숨기기
warnings.filterwarnings(action='ignore')

plt.rcParams['font.family'] = 'S-Core Dream' # 한글 폰트 가져오기
plt.rcParams['axes.unicode_minus'] = False # - 기호 깨짐 해결

 

# 데이터 불러오기

bike_1 = pd.read_csv("data/공공자전거대여소정보(21.01.31기준).csv", encoding = "cp949")
bike_2 = pd.read_csv("data/공공자전거대여소별이용정보_2020.07_2021.01.csv", encoding = "cp949")
bike_3 = pd.read_csv("data/공공자전거이용정보(시간대별)_21.01.csv", encoding = "cp949")

print(bike_1.shape)
print(bike_2.shape)
print(bike_3.shape)

bike_1.head()
#bike_2.head()
#bike_3.head()

 

 

# 데이터 기본 정보 확인

#bike_1.info()
#bike_2.info()
bike_3.info()

  • bike_1 데이터의 대여소번호는 수치나 연속성을 나타내는 값이 아니기 때문에 전처리 시 object 타입으로 변경하도록 하겠습니다.
  • bike_3 데이터의 이용건수, 운동량, 탄소량, 이동거리, 사용시간 컬럼이 object 타입으로 되어 있어 전처리 시 수치형 타입으로 변경하도록 하겠습니다.
  • bike_1, bike_3 데이터에 날짜를 나타내는 컬럼이 object 타입으로 되어 있어 전처리 시 날짜 타입으로 변경하도록 하겠습니다. 
# 수치형 데이터 통계 확인

#bike_1.describe()
#bike_2.describe()
bike_3.describe()

  • bike_3 데이터내 사용시간 컬럼에서 최대값이 1,753 시간이나 되는것으로 확인되어 데이터 값이 정확한지 확인할 필요가 있을 것 같습니다.
# 범주형 데이터 통계 확인

#bike_1.describe(include = np.object_)
#bike_2.describe(include = np.object_)
bike_3.describe(include = np.object_)

  • bike_3 데이터내 성별이 4가지 종류가 되는것으로 확인되어 데이터 값이 제대로 들어가 있는지 확인할 필요가 있을 것 같습니다.
# bike_1 데이터 결측치 확인

bike_1.isnull().sum()

 

 

# bike_1 데이터 결측치 시각화

msno.bar(bike_1)

 

 

# bike_2 데이터 결측치 확인

bike_2.isnull().sum()

 

 

# bike_3 데이터 결측치 확인

bike_3.isnull().sum()

 

 

# bike_3 데이터 결측치 시각화

msno.bar(bike_3)

2. 질문하기

- 이동거리 / 평균 사용시간이 높은 대여소는?
- 운동량과 이동거리의 상관관계?
- 따릉이를 가장 많이 이용하는 성별은?
- 따릉이를 가장 많이 이용하는 연령대는?
- 서울시 구별로 거치대 개수와 대여건수는?

728x90