trn : train data / tes : test data
>> datetime 전처리
# datetime 열에서 시간, 요일, 월, 연도 열 추출
trn['hour'] = [t.hour for t in pd.DatetimeIndex(trn.datetime)]
trn['month'] = [t.month for t in pd.DatetimeIndex(trn.datetime)]
trn['year'] = [t.year for t in pd.DatetimeIndex(trn.datetime)]
tes['hour'] = [t.hour for t in pd.DatetimeIndex(tes.datetime)]
tes['month'] = [t.month for t in pd.DatetimeIndex(tes.datetime)]
tes['year'] = [t.year for t in pd.DatetimeIndex(tes.datetime)]
# 시간, 요일, 월, 연도별 평균 계산
hour = trn.groupby(['hour']).mean()['count']
month = trn.groupby(['month']).mean()['count']
year = trn.groupby(['year']).mean()['count']
# 해당 평균 입력
data['hour'] = data['hour'].map(lambda x : hour[x])
data['month'] = data['month'].map(lambda x : month[x])
data['year'] = data['year'].map(lambda x : year[x])
>> datatype 변경
# datatype 변경해주기
data['datetime'] = pd.to_datetime(data['datetime'])
data['season'] = data['season'].astype('object')
data['holiday'] = data['holiday'].astype('object')
data['workingday'] = data['workingday'].astype('object')
data['weather'] = data['weather'].astype('object')
>> 범주형 데이터 파악 및 NA 값 확인 / one-hot encoding(get_dummies)
# 범주형 데이터 파악
for col in obj_cols:
uniq = np.unique(data[col].astype(str))
print('-' * 50)
print('# col {}, n_uniq {}, uniq {}'.format(col, len(uniq), uniq))
# NA 값 확인
for col in trn.columns:
msg = 'column: {:>10}\t Percent of NaN value: {:.2f}%'.format(col, 100 * (data[col].isnull().sum() / data[col].shape[0]))
print(msg)
# 나머지 범주형 데이터 one-hot encoding
onehot = pd.get_dummies(data.season, prefix='season')
>> train / test 분할
data_trnX = data.iloc[0:int(len(trn)*0.7)].drop(['datetime','casual','registered','count'],axis=1)
data_trnY = data.iloc[0:int(len(trn)*0.7)]['count']
data_tesX = data.iloc[int(len(trn)*0.7):len(trn)].drop(['datetime','casual','registered','count'],axis=1)
data_tesY = data.iloc[int(len(trn)*0.7):len(trn)]['count']
data_tesD = data.iloc[int(len(trn)*0.7):len(trn)]['datetime']
seaborn
sns.distplot : 분포
sns.lineplot : 막대그래프 (시계열적 분포 확인)
반응형
'DATA SCIENCE > VISUALIZATION' 카테고리의 다른 글
[Tableau] Rounded bar chart 만들기 (0) | 2020.03.20 |
---|---|
[Tableau] 달력 차트 만들기 (0) | 2020.03.20 |
[Tableau] 날짜 기준 매개변수 생성하기 (0) | 2020.03.20 |
[R] 색상 이름 (0) | 2020.02.18 |
[Python] pandas_profiling : EDA를 더 쉽게 해보자! (0) | 2020.02.10 |