Python/Time Series with Python
TimeSeries with Python _ Pandas 6 _ 년별 데이터 평균, idxmax
MINSU KANG
2019. 12. 25. 10:35
이번 포스팅에서는 지난번에 했던것들을 복습하는 것과 idxmax를 통해 max값이 있는 인덱스를 추출하는 방법, 그리고 그것을 활용한 응용예제까지 살펴보겠다
year_data = df.resample('Y').mean() #resample 메소드를 이용해 월별 데이터 프레임에서 년별 평균들을 구할 수 있음
year_data_shift = year_data.shift(1) # 그리고 shift 메소드를 이용해 연별 평균값들의 차이를 구할 수 있음
diff_year = year_data - year_data_shift
diff_year['UMTMVS'].idxmax() # 마지막으로 idxmax 메소드를 통해 연별 평균이 가장 크게 증가한 년도를 쉽게 알아볼 수 있음
그림을 살펴보면 알 수 있지만, 2008년도에 가장 데이터값이 크게 증가했다
만약 내가 2008년 가장 크게 증가한 이후 부분부터, 그 때보다 더 크게 증가하는 부분까지 얼마만큼의 개월수가 지나야 했는지 알아보려면 어떻게 할까?
#우선 2008년도에 가장 크게 증가한 값을 구함
df2008 = df.loc['2008-01-01':'2008-12-01'] # 2008년도의 DataFrame을 따로 만듬
df2008.idxmax() #idxmax()메소드를 통해 2008년 어느월이 가장 크게 증가했는지 알아봄
df2008.max() #max()메소드를 통해 2008년 가장 수치가 높았던 값을 추출
df_post_peak = df.loc['2008-06-01':] # 2008-6-1 이후의 값들을 선택
df_post_peak[df_post_peak>=df2008.max()].dropna() #2008년 이후 2008년의 가장 높았던 값보다 높았던 일수들을 체크
len(df.loc['2008-06-01':'2014-03-01']) #길이를 구함으로써 얼마나 지났는지 체크할 수 있음