낭만적(?) 일상/파이썬, 데이터분석

날짜(date)를 인덱스(index)로 만드는 파이썬 코드

Soo♥JJeong 2019. 7. 6. 16:58

데이터를 분석하다보면, 날짜를 인덱스로 써야하는 날이 온다. 이번 포스팅에서는 파일을 불러올 때, 날짜를 인덱스로 설정하는 파이썬 코드에 대해 알아보겠다.

 

 

 



data = pd.read_csv(경로, index_col = '컬럼명', parse_dates = True)    

 

parse_dates는 날짜를 datetime 형태로 변환할지 여부인데, True라고 했으니 해당 컬럼에 있는 데이터는 날짜 형태가 된다.

 

 

 

colab에서 실행하다보니, 위에서 데이터를 'downloaded'에 넣어놓았다. 만약 로컬에서 실행한다면, 저 downloded 대신 파일의 경로를 넣어야 한다.

 

인덱스 컬럼을 'Date'라는 컬럼명으로 넣었고, parse_dates= True로 날짜 타입으로 변경했다.

 

 

 

 

2.1) df.columns  컬럼명에 'Date'가 없는 것을 볼 수 있다. Date컬럼은 인덱스가 되었다.

2.2) df.dtypes    데이터타입을 확인하는 코드에서도 Date컬럼은 없다. (인덱스는 컬럼이 아니다.)

 

2.3) df.index      인덱스를 확인하는 코드인데, 가장 아랫줄에 dtype = 'datetimes64[ns]'로 데이터타입이 날짜임을 확인할 수 있다.

 

 

 

그렇다면, 언제 인덱스를 날짜로 하는 것이 필요할까? 연도별, 월별 기술통계를 낼 때 편하게 이용할 수 있다.

 

2.4) df['년(월)].describe()  이 코드는 특정년도, 특정년월의 기술통계를 확인하는 코드이다. 데이터타입이 Datetime으로 되어 있어야만 쓸 수 있는 코드이니, 만약 오류가 났다면 df.index로 인덱스의 데이터타입을 확인해보자.

 

 

2010년에 max값과 2010년 2월의 max값은 2배 넘게 차이가 난다. (25/50/75%는 큰 차이가 없음) 특정달의 max값에 outlier가 존재하는 듯하다.

 

 

날짜를 인덱스로 만드는 파이썬 코드. 어렵지 않다! 월별/연도별로 데이터 분석을 하는 사람이라면 꼭 알아야 할 내용이다.  

 

 

 

* 위 내용은 내돈내고(!)  '드립력으로 머신러닝 배우기 기초아니야반' 에서 배운 내용이다.

** 혹시 수정되어야 할 부분이 있으면 댓글로 알려주세요! (저도 공부하는 중입니다 ^^)