python boxplot을 통해 데이터 빈도 알아보기/ 고양시 운영이력 데이터 살펴보기
프롬씬
·2020. 9. 11. 11:45
1. 운영이력에서 필요없는 데이터 삭제하기
riding_data = pd.read_csv("01.운영이력.csv")
riding_data.head()
print(jy)
riding_data.shape
riding_data.RTN_PROCESS.value_counts()
riding_data = riding_data.loc[~riding_data.RTN_PROCESS.isin(["1.0", "3.0", "5.0"]), :]
riding_data.shape
riding_data.LEAS_DATE.dtype
2. 반납시간 - 대여시간 빼기
데이터프레임 시간 object to datetime 으로 만들고 "분"으로 만들기
riding_data["LEAS_DATE"] = pd.to_datetime(riding_data["LEAS_DATE"])
riding_data["RTN_DATE"] = pd.to_datetime(riding_data["RTN_DATE"])
riding_data['Difference'] = riding_data['RTN_DATE'].sub(riding_data['LEAS_DATE'], axis=0)
riding_data['Difference']
✔️시간:분:초 - > 분으로 바꾸기
riding_data['Difference'] = riding_data['Difference'] / np.timedelta64(1, 'm')
riding_data['Difference'] = riding_data['Difference'].astype(int)
✔️mean > median 으로 보아 이상치, 큰 값이 많을 것으로 보인다.
riding_data['Difference'].describe().astype(int)
#0-10분 사이의 작은 데이터 수치가 보임 그래서
riding_data['Difference'].sort_values(ascending=True)
#빌린 시간이 5분이하인 데이터는 삭제함.
riding_data = riding_data.loc[~riding_data.Difference.isin(["0","1","2","3","4","5"]), :]
riding_data.shape
#0-5분 지우고 난 후
sns.boxplot(data=riding_data.loc[:, ["Difference"]])
plt.ylim(0,100)
✔️ boxplot으로 그려보아도 알수 있다. 대부분의 시간은 단기대여이지만 중장기적인 장기대여도 많이 있다는 점을 파악할 수있다.
#빌린 시간 대 별로 timegroup 만들기 #timegroup을 더 줄여도 된다 생각한다!
riding_data["timegrp"] = pd.cut(riding_data.Difference, [0,5,10,20,30,40,50,60,90,120,180,
240,300,1000,3000,5000,9000,20000,50000])
riding_data
'경진대회, 공모전 > COMPAS 고양시 공공자전거 스테이션 최적 위치 선정' 카테고리의 다른 글
"피프틴" 태그가 포함된 인스타그램 게시물 개수 추이와 실제 사용량 비교해보기 (2) | 2020.09.12 |
---|---|
python 카테고리 나누기 / pydeck을 이용하여 스테이션별 이용량 파악하기 (0) | 2020.09.11 |
[COMPAS 고양시] 데이터 시각화 해보기 ( feat. python, folium ) (0) | 2020.08.01 |