2016-11-11 1 views
2

이미 데이터를 팬더 데이터 프레임에로드했습니다.Python, 데이터 프레임의 일별 데이터를 월별 및 분기별로 요약

예 :

Date  Price 
2012/12/02 141.25 
2012/12/05 132.64 
2012/12/06 132.11 
2012/12/21 141.64              
2012/12/25 143.19 
2012/12/31 139.66 
2013/01/05 145.11 
2013/01/06 145.99 
2013/01/07 145.97 
2013/01/11 145.11 
2013/01/12 145.99 
2013/01/24 145.97 
2013/02/23 145.11 
2013/03/24 145.99 
2013/03/28 145.97 
2013/04/28 145.97 
2013/05/24 145.97 
2013/06/23 145.11 
2013/07/24 145.99 
2013/08/28 145.97 
2013/09/28 145.97 

그냥 두 개의 열, 하나는 데이터이며, 한 가격입니다.

이제 데이터를 그룹화하거나 다시 샘플링하는 방법을 2013 년부터 매월 및 분기 별 df로 시작 하시겠습니까?

월 :

Date  Price 
2013/01/01 Monthly total 
2013/02/01 Monthly total 
2013/03/01 Monthly total 
2013/04/01 Monthly total 
2013/05/01 Monthly total 
2013/06/01 Monthly total 
2013/07/01 Monthly total 
2013/08/01 Monthly total 
2013/09/01 Monthly total 

분기 :

Date  Price 
2013/01/01 Quarterly total 
2013/04/01 Quarterly total 
2013/07/01 Quarterly total 

월별 및 분기 별 데이터가 달의 데이터가 첫 날 달의 첫날부터하지만 원래 dataframe에서 시작할 필요가 있습니다 누락, 매월 유효한 일일 데이터의 양이 다를 수 있습니다. 또한 원래 dataframe 나는 단지 내가

result1 = df.groupby([lambda x: x.year, lambda x: x.month], axis=1).sum() 

처럼 뭔가를 시도했지만 작동하지 않습니다 2013

의 시작부터 매월 및 분기 별 데이터가 필요 2012 년에서 2013 년 데이터가 있습니다.

감사합니다.

답변

6

첫 번째는 날짜 인덱스로 날짜 열을 변환 :

df.Date = pd.to_datetime(df.Date) 
df.set_index('Date', inplace=True) 

그런 resample를 사용합니다. 오프셋 별칭 목록은 pandas documentation에 있습니다. 를 들어, 월 재 샘플의 시작 분기 MSQS를 사용 환상적인

df.resample('QS').sum() 
Out[46]: 
       Price 
Date    
2012-10-01 830.49 
2013-01-01 1311.21 
2013-04-01 437.05 
2013-07-01 437.93 

df.resample('MS').sum() 
Out[47]: 
      Price 
Date    
2012-12-01 830.49 
2013-01-01 874.14 
2013-02-01 145.11 
2013-03-01 291.96 
2013-04-01 145.97 
2013-05-01 145.97 
2013-06-01 145.11 
2013-07-01 145.99 
2013-08-01 145.97 
2013-09-01 145.97 
+0

을! 나는 groupby 함수, 람다 식으로 2 일 동안 고생했다 ... 정말 고마워! – Windtalker

+0

이렇게하면 중복 된 날짜가 있으면 df.set_index가 여전히 작동합니까? 아니면 먼저 중복 데이터 데이터를 처리해야합니까? – Windtalker

+0

문제가되지 않습니다. 샘플에서 날짜를 변경하여 속는 사람을 얻으십시오. 예상대로 모든 것이 작동하는 것을 볼 수 있습니다. – Boud

관련 문제