Python
Python 데이터 분석(주피터노트북) - 서울시 따릉이
developers developing
2022. 12. 4. 12:00
데이터 수집
- url(https://data.seoul.go.kr/dataList/datasetList.do#)
- 서울시 공공자전거 대여소별 이용정보
- 서울시 공공자전거 시간대별 이용정보
- 서울시 공공자전거 대여소 정보
라이브러리 및 세팅
- import seaborn as sns
- seaborn 폰트 사용 - 한글처리보다 먼저 선언해야함
- sns.set(font_scale=1)
- import pandas as pd
- import matplotlib.pyplot as plt
- 한글처리
- plt.rcParams['font.family'] = 'Malgun Gothic'
- plt.rcParams['axes.unicode_minus'] = False
- 경고 메세지
- import warnings
- warnings.simplefilter("ignore")
- seaborn 스타일의 그래프를 사용
- plt.style.use('seaborn')
데이터 로드
1) 시간대별 == bike3

2) 대여소별 이용 == bike2

3) 대여소 정보 == bike

데이터 탐색
- info
- describe
1) bike1

2) bike2

3) bike3

데이터 전처리
bike1
1) bike1 컬럼명 변경

2) 컬럼 제거
- 위도
- 경도
- 상세주소

3) NaN 처리
- bike1의 NaN 확인한 후 0으로 채우기

4) 컬럼 타입 확인

bike2

1) 대여소명이 번호랑 문자랑 같이 구성
- 대여소번호 컬럼을 생성한 후 대여소명에서 번호를 분리한 값 담기
- 대여소명_new 컬럼을 생성할 후 대여소명에서 이름만 분리한 값 담기

2) 대여소명_new이 None 인 값 확인 후 제거


bike3
1) 대여소명에서 숫자를 제거한 값을 새로운 컬럼에 담기
- 대여소명_new
- 잘라내기 -> 확인 -> 새로 담기


2) 성별 컬럼 정리
- m => M, f => F
- 성별 컬럼에 어떠한 값들이 있는가?
- 성별에 null 값이 너무 많아서 정리 불가




3) 데이터 타입 변경
① astype('변경할타입')
② pd.to_numeric('변경할 컬럼) : 적절한 숫자 타입으로 변경
==> 컬럼안에 nan이 있다면 pd.to_numeric()사용.
특정 문자 포함 => 정규식을 사용하여 확인 후 데이터 타입 변경

※ 에러 확인 : 문자열 '\N'
could not convert string to float: '\\N'


에러 수정





4) 대여일자 타입 변경
- object ==> datetime

데이터 분석
1) 이동거리/평균 사용시간이 높은 대여소는?
- bike 3 이용
- 이동 거리가 큰 순서대로 대여소명_new 추출
- 평균 사용시간이 높은 순서대로 대여소명_new 추출

2) 운동량과 이동거리의 상관관계는?
- 차트 그리기


3) 따릉이를 가장 많이 이용하는 성별은?
- 대여 일자에 따른 남녀 대여건수 비교
- 년도 조회
- 월 조회
- 일 조회
- 차트 그리기



4) 구별 설치 거치대의 개수는?

- 총거치대수 = 거치대수lcd + 거치대수 qr => 컬럼 생성
- bike1 자치구를 그룹으로 총 거치대수 구한 결과 => bike_group 데이터 프레임 생성




5) 자치구 별 총 거치대수 지도 시각화
- 데이터 가져오기


6) 구별 대여 건수
- bike_df2, bike1 대여소 번호 연결 ==> merge
- 타입이 같은지 확인
- 타입 변경
- 필요한 컬럼만 남기기
- 대여일자/월 ==> 202108 인 정보만 추출해서 새로운 프레임 생성(bike_merge1)
- 자치구별 대여 건수 집계
- 시각화










