2016-07-25 2 views
2

나는 파생 상품을 계산할 분기 별 시계열 데이터를 가지고 있습니다. 문제는 원시 데이터가 시계열에 간격이 있음을 나타냅니다. 따라서 변수에서 1/4의 비율 변화를 찾으려는 경우 1/4보다 훨씬 긴 기간의 변화율을 계산하지 못하는 경우가 있습니다. 앞의 데이터 포인트가 이전 분기의 것이고 더 이상이면 pct_change()가 완료되었는지 어떻게 확인합니까파이썬에서 누락 된 데이터가있는 Pct_change

관련하여 전년 대비 변화를 계산하려고합니다. 4 기간 뒤로 가야 할 것입니다. pct_change를 사용하여 1보다는 4 기간 만 되돌아 보도록 할 수 있지만, 다시 말해서 모든 데이터가 있다고 가정합니다.

이 상황을 처리하는 가장 좋은 방법은 무엇입니까? 나는 아래의 샘플 데이터를 포함했다

dataRGQoQ = rawdata.groupby("ticker")['revenueusd'].pct_change() 

: 아래

데이터가 완벽했다 만약 내가 사용하는 것이 코드입니다. 이 데이터에는 2 가지 포인트가 있습니다. (1) 'A'는 '2006-09-30'과 '2007-12-31'사이의 차이입니다. (2) ABV의 경우 '2012-12-31'과 '2013-12-31'사이에 간격이 있습니다 (이 시간은 날짜가없고 데이터가 없기 때문에 약간 다릅니다).

ticker,calendardate,revenueusd 
A,2005-12-31,5139000000 
A,2006-03-31,4817000000 
A,2006-06-30,4560000000 
A,2006-09-30,4325000000 
A,2007-12-31,5420000000 
A,2008-03-31,5533000000 
A,2008-06-30,5669000000 
A,2008-09-30,5739000000 
AA,2005-12-31,26159000000 
AA,2006-03-31,27242000000 
AA,2006-06-30,28438000000 
AA,2006-09-30,29503000000 
AA,2006-12-31,30379000000 
AA,2007-03-31,31338000000 
AA,2007-06-30,31445000000 
AA,2007-09-30,31201000000 
AA,2007-12-31,30748000000 
ABBV,2012-12-31,18380000000 
ABBV,2013-03-31, 
ABBV,2013-06-30,  
ABBV,2013-09-30,  
ABBV,2013-12-31,18790000000 
ABBV,2014-03-31,19024000000 
ABBV,2014-06-30,19258000000 
ABBV,2014-09-30,19619000000 
ABBV,2014-12-31,19960000000 
ABBV,2015-03-31,20437000000 

답변

1

나는 피벗을 용이하게하기 위해 색인에 ['calendardate', 'ticker']을 넣을 것입니다. 그런 다음 unstack을 클릭하여 열의 티커 값을 가져옵니다. 인덱스의 calendardate

enter image description here

df.set_index(['calendardate', 'ticker']).unstack().head(10) 

, 우리는 모든 분기를 삽입 resample('Q')를 사용할 수 있습니다. 이렇게하면 누락 된 분기에 대해 올바른 NaN을 얻을 수 있습니다.
df.set_index(['calendardate', 'ticker']).unstack().resample('Q').mean().head(10) 

df1이 할당 한 후 우리는 다시 dataframe 적절한 열을 얻기 위해 뒤로 reset_index pct_change, stack을 할 수 있습니다. 답장을

df1 = df.set_index(['calendardate', 'ticker']).unstack().resample('Q').mean() 
df1.pct_change().stack().reset_index() 

enter image description here

+0

감사합니다! 이것은 그것의 일부로 도움이됩니다. 빈 공간을 채우지 만 백분율로 변환하면 ABBV '2012-12-31'퍼센트는 -91 %가됩니다. 왜 그런 일이 일어나는지 확신 할 수 없습니다. 또한 '2006-09-30'과 '2007-12-31'사이에 틈이있는 'A'시계열의 첫 번째 문제는 다루지 않습니다. 그 두 가지에 대한 어떤 생각? – JohnSmith

+0

당신은'limit = 4'을 제거 할 수 있습니다. 당신을위한 질문은 무엇입니까? 해당 분기에 대해 '0 %'를 원하십니까? 나는 그 (것)들을 남겨두기의 측에 넘어 질 것입니다. NaN – piRSquared

+0

예 NaN으로 남겨 두십시오 – JohnSmith

관련 문제