캐글 자전거 수요 예측 데이터(Bike Sharing Demand)를 활용한 파이썬 시각화

seono·2022년 9월 29일
0

멋사 ai스쿨 2번째 자기주도 학습 시간~.~
뭘 하면 좋을지 고민하다가 캐글 데이터로 시각화를 해보기로 결정했다.
plot 수업 시간에 코드 받아쓰기만 했던 슬픈 기억.....



시각화에 사용할 데이터를 다운받고 업로드한 다음
(colab을 이용했기 때문에 파일로 업로드 했다)
https://www.kaggle.com/competitions/bike-sharing-demand/overview


1. 파이썬 환경 설정

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

데이터를 불러와서 확인하기
데이터 이름이 train이어서 train data => td로 설정했다

td = pd.read_csv('train.csv')
td.head(3)

데이터 요약

td.info()

결측치 확인

td.isnull().sum()


2. 데이터 시각화 준비

datetime 컬럼을 datetime 속성으로 변경해주고 각각의 변수에 지정해준다

td["datetime"] = pd.to_datetime(td["datetime"])
td["year"] = td["datetime"].dt.year
td["month"] = td["datetime"].dt.month
td["day"] = td["datetime"].dt.day
td["time"] = td["datetime"].dt.time

dt.year/month/day/time은 주어진 시리즈 객체의 기본 데이터에서 datetime의 연도/월/날짜/시간을 포함하는 numpy 배열을 반환하는 pandas 기능이다.
오.. 작성하면서 알게 되었는데 time이 아니라 hour로 작성했어야 한다. 어쩐지 시각화 결과물이 이상하더라.

결과를 확인해보면 다음과 같다

3. 데이터 시각화
데이터를 확인하기 위해 전체 데이터셋을 histplot으로 시각화했다

td.hist(figsize=(12, 10), bins=70)
plt.show()

barplot
연도별 대여량을 barplot으로 확인해보았다

sns.barplot(data = td, x = "year", y = "count")

월별 대여량
1월 대여량의 2배 수준으로 6~10월의 대여량이 많음을 확인할 수 있다.

시간별 대여량
다른 변수에 비해 범위가 넓어서 크기를 따로 지정해주었다.
오전 8시와 오후 5시, 6시의 대여량이 눈에 띈다. 출퇴근 시간에 주로 이용한다고 추측해볼 수 있다.

plt.figure(figsize=(20, 7))
sns.barplot(data = td, x = "time", y = "count")

boxplot
다음은 계절별 대여량을 boxplot으로 시각화해보았다.
봄 여름 가을 겨울 순서로 여름과 가을에 대여량이 높다는 것을 확인할 수 있다. 하지만 역시 직관적으로 이해하기는 어렵다.

sns.boxplot(data = td, x= "season", y = "count")


barplot이 조금 더 이해하기 편하다.

sns.barplot(data = td, x = "season", y = "count")


lineplot
추세 확인에 용이하다. 1월부터 쭉 증가하던 대여량이 6월에 피크를 찍고 천천히 감소하고 있다.

sns.lineplot(data=td, x="month", y="count")

heatmap
heatmap을 통한 상관계수 시각화까지 진행하고 싶었지만 상관계수 구하기에서 막혔다. 다른 사람이 짠 코드를 봐도 전혀 이해가 안 되는 걸 보니 상관계수의 개념부터 다시 공부해야할듯 하다.



참고자료
https://mintaewon.github.io/2021/01/kaggle-%EC%9E%90%EC%A0%84%EA%B1%B0-%EC%88%98%EC%9A%94-%EC%98%88%EC%B8%A1bike-sharing-demand-1eda/
https://studio-kimhippo.tistory.com/33

profile
데이터분석 뽀개기

0개의 댓글