Hi kaggle. kaggle london bike 수요예측

이선빈·2024년 1월 9일

kaggle

목록 보기
2/3

day 1

데이터 분석, 시각화, 탐색적 분석

💻데이터 셋 불러오기, 분석

kaggle에서 singin


가입 완료!


나의 첫 kaggle 연습 데이터는 London bike sharing dataset
data에 대해 자세하게 설명이 되어있어서 좋다.ㅎ
영어로 되어있지만 영어 공부도 할겸 번역 안하고 읽어보았다.

유튜브 캐글로 시작하는 데이터 분석를 참고했다.

학원에서는 anaconda 주피터 노트북과 colab을 주로 사용했는데 캐글 노트북은 새롭다.
사용 방식은 거의 같았다.

numpy ,pandas, os, matplotlib 눈에 익은 모듈과
파일을 읽어오는 코드가 보였다.

seaborn과 missingno는 처음 보는 모듈이었다.

빠르게 구글링
seaborn ,
missingno는 결측치를 시각화하는 편리한 모듈

df = pd.read_csv("/kaggle/input/london-bike-sharing-dataset/london_merged.csv",parse_dates = ['timestamp'])
df.head()

데이터 셋을 읽어오고 상단 5개 데이터를 확인

pandas 데이터 프레임은 국비과정에서 많이 사용해보아서 익숙했다.

print('데이터의 구조:', df.shape) 
print('데이터의 타입:', df.dtypes)
print('데이터의 column:', df.columns)

다음은 데이터 구조와 타입을 확인
데이터 분석 시작시 데이터 구조, 타입을 확인하고 진행

df.isna().sum()

결측치 확인

전체 데이터에 결측치가 없었다

msno.matrix(df)
plt.show()

missingno를 통해 결측치 시각화

결측치가 없어서 bar가 모두 검정색인 것을 확인 할 수있다.

df['year'] = df['timestamp'].dt.year 
df['month'] = df['timestamp'].dt.month #월
df['dayofweek'] = df['timestamp'].dt.dayofweek #요일
df['hour'] = df['timestamp'].dt.hour # 시간
df.head()
#모델이 학습 할 수 있도록 많은 데이터를 추출하는것도 데이터 전처리 일부

타임스탬프 열의 년도,월,요일,시간 추출 -> year,month,dayofweek,hour 열 만들어서 해당 데이터 추가
모델이 학습 할 수 있도록 많은 데이터를 추출하는것도 데이터 전처리 일부

df['year'].value_counts()
df['month'].value_counts()
df['dayofweek'].value_counts()
df['weather_code'].value_counts() # weather_code 는 범주형 데이터 

데이터 구성을 확인해보았다.

weather_code 카테고리 설명은 kaggle에 잘 설명되어 있다.

"weathe_code" category description:
1 = Clear ; mostly clear but have some values with haze/fog/patches of fog/ fog in vicinity0
2 = scattered clouds / few clouds
3 = Broken clouds
4 = Cloudy
7 = Rain/ light Rain shower/ Light rain
10 = rain with thunderstorm
26 = snowfall
94 = Freezing Fog

💻그래프 활용 탐색적 분석

df.head()


year, month, dayofweek, hour 열이 추가됐다

a,b = plt.subplots(1,1,figsize=(10,5))
sns.boxplot(df['year'], df['cnt'])

오류 발생..!

인자 수의 문제라는데 🧐🧐
구글링 ㄱ ㄱ
바로 찾을 수 있었다.인프런

sns.boxplot(x=df['year'], y=df['cnt'])

df['year']와 df['cnt']를 x와 y로 지정해 주니 정상적으로 작동했다.

max, 중위값, min 값, 이상치를 확인했다.
연도에 따라 다르고 17년도부터는 자전거 이용객이 적었다.

월별로 확인

기온 날씨에 따라 이용객의 차이가 있는 걸까

요일별 확인

주말에 이용객이 살짝 적어진다.

시간별 확인

출퇴근 시간이 가장 많고 야간 새벽에는 적은 것을 확인할 수 있다.
주말에 이용객이 적어지는 이유도 출퇴근 중 자전거 이용객의 영향이 있을 거 같다.

그래프 함수 만들어 사용해보기



def plot_bar(data,feature):
    fig = plt.figure(figsize=(12,3))
    sns.barplot(x=feature,y='cnt',data=data,palette='Set3',orient='v')

orient='v'에서 v는 소문자로 해야한다. V 대문자로 하고 함수를 사용해
plot_bar(df,'hour') 그래프를 그리려고 하니

ValueError: orient must start with 'v' or 'h' or be None, but 'V' was passed.
오류 발생

그래 소문자 'v' 사용하고 plot 하면~


이렇게 함수를 만들어서 plot하는 방법도 알아봤다.

이어서..

0개의 댓글