2021.03.30 TIL
- 파이썬 운용(전처리, 시각화), 특기할만한 것들
kaggle - Happiness Report
다른 연도들의 데이터를 통합하기 위해 데이터 프레임을 dict 타입으로 불러온 후
각 연도 데이터들의 연도를 dict의 key로 설정하여 추후 통합시 index로 사용되게끔 한다.
핵심은 df = dict() 를 입력하여 df[‘year’]의 year를 key로 사용할 수 있게끔 하는 것.
plot 시각화할때 ax=plt.gca()를 사용하여 plot을 객체화, plot을 더 쉽게 다룰수 있게 만든다.
ex) ax.yaxis.set_label_position(‘right’) : 우측으로 라벨링
ax.yaxis.tick_right() : y축 라벨과 value를 같이 이동
pd.cumsum() : 누적합 표시
d[d.columns[::-1]] d를 plot으로 표시하는데 컬럼을 거꾸로부터 표시한다.
(누적합적용되어 있어 각 컬럼마다 색을 다르게 표시하기 위해 가장 긴것부터 덮어씌워 준다.)
sns.set_color_codes(‘muted’)
colors = [‘r’, ‘g’, ‘b’, ‘c’, ‘m’, ‘y’, ‘purple’] [::-1]
for idx, c in enumerate(d.columns[:-1]):
sns.barplot(data=d, x=c, y=’country’, label=c, color=colors[idx])
팔레트 ‘muted’로 적용 후 colors 통해 각 컬럼의 색깔을 지정해준다.
barplot으로 표현하는데 enumerate 통해서 뒤에서부터 c=각 컬럼의 이름, idx설정후에 가시화
kaggle - Video Games With Ratings
전에 다루었던 Used Cars 데이터와 마찬가지로 기본적으로 아웃라이어가 많은 데이터 셋이었다.
게임의 경우 wii sports의 판매액이 다른 게임들보다 한참 앞서 있어 정당한 데이터임에도 불구하고 머신러닝을 위해 삭제 후 분석을 진행하였고, wii를 제외한 판매액 순위 1%에 해당하는 상위 게임을 분석에 사용하지 않기 위해
제거하였다. User Count 역시 마찬가지로 잘나가는 게임의 경우 평가에 참여한 유저수가 대단히 많기때문에 이 역시 평가 참여가 높은 게임 상위 1%를 분석을 위해 제거하였다.
kaggle - Covid19 John Hopkins
시계열 데이터.
fix_dataframe 이란 함수 생성(위-경도 제거하고 각 나라의 지방을 하나로 묶어줌.)
index가 나라이름 value가 날짜로 되어 있는데 transpose() 시켜서 날짜가 index가 되게끔
pd.to_datetime(str(s)) 를 이용해 문자열 index(날짜)를 date타입으로 변경.
확진자와 사망자 데이텉를 사용하는데 두 가지 데이터프레임에 함수를 모두 적용.
plot 제목에 %~~.name.strftime(‘%Y-%m-%d’)를 사용하여 제목에 최근 데이터의 날짜를 같이 기입.
확진자 사망자를 한 plot에 표현하기 위해 ax = plt.gca()와 ax2 = ax.twinx()를 사용.
일일확진자 표현을 위해 diff()만 붙히면 해결되는데, diff는 기준과 그 전의 차이를 나타내고, df_case[나라]가 누적확진자이므로 일일확진자로 표현할 수 있다.
시계열 데이터 분석에 적합한 tool FBProphet 사용.
학습 테스트 데이터 분리, 날짜를 개수로 바꾼후 df.shape[0] test size를 전체의 10%로 설정 소수점이 나오면 안 되니 floor를 써서 소수점을 내림.
train 으로 fit 시키고 test로 predict를 하면 test에 해당하는 data를 예측하낟.
changepoint_range 를 1.0으로 하여 조그만 변화에도 민감하게 반응할 수 있도록
make_future_datafrmae 기능 사용.