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년의 가장 높았던 값보다 높았던 일수들을 체크

2008년 6월 1일 이후로 가장 크게 증가했던 때는 2014년 3월 1일 인것을 알 수 있음

 

 
len(df.loc['2008-06-01':'2014-03-01']) #길이를 구함으로써 얼마나 지났는지 체크할 수 있음