2017-02-09 4 views
1

각 열의 롤링 (창 = 60) 값의 기울기를 계산하려면 어떻게해야합니까?팬더 - 롤링 슬로프 계산

매 5 분마다 값을 계산하고 싶습니다. 모든 레코드의 결과가 필요하지 않습니다.

df 
Time    A ...  N 
2016-01-01 00:00 1.2 ... 4.2 
2016-01-01 00:01 1.2 ... 4.0 
2016-01-01 00:02 1.2 ... 4.5 
2016-01-01 00:03 1.5 ... 4.2 
2016-01-01 00:04 1.1 ... 4.6 
2016-01-01 00:05 1.6 ... 4.1 
2016-01-01 00:06 1.7 ... 4.3 
2016-01-01 00:07 1.8 ... 4.5 
2016-01-01 00:08 1.1 ... 4.1 
2016-01-01 00:09 1.5 ... 4.1 
2016-01-01 00:10 1.6 ... 4.1 
.... 

result 
Time    A ...  N 
2016-01-01 00:04 xxx ... xxx 
2016-01-01 00:09 xxx ... xxx 
2016-01-01 00:14 xxx ... xxx 
... 

기능을 df.rolling 수있는이 문제에 적용 할 수 :

다음은 샘플 dataframe 및 결과입니까?

NaN의 창에 하위 집합을 의미하는 것은보다 60

답변

-1

당신은 pandas Resample을 사용할 수있을 수 있다면 그것은 괜찮습니다. 즉,이를 사용하는 참고

df.index = pd.to_datetime(df.Time) 
print df 
result = df.resample('5Min').bfill() 
print result 
           Time A N 
Time           
2016-01-01 00:00:00 2016-01-01 00:00 1.2 4.2 
2016-01-01 00:01:00 2016-01-01 00:01 1.2 4.0 
2016-01-01 00:02:00 2016-01-01 00:02 1.2 4.5 
2016-01-01 00:03:00 2016-01-01 00:03 1.5 4.2 
2016-01-01 00:04:00 2016-01-01 00:04 1.1 4.6 
2016-01-01 00:05:00 2016-01-01 00:05 1.6 4.1 
2016-01-01 00:06:00 2016-01-01 00:06 1.7 4.3 
2016-01-01 00:07:00 2016-01-01 00:07 1.8 4.5 
2016-01-01 00:08:00 2016-01-01 00:08 1.1 4.1 
2016-01-01 00:09:00 2016-01-01 00:09 1.5 4.1 
2016-01-01 00:10:00 2016-01-01 00:10 1.6 4.1 
2016-01-01 00:15:00 2016-01-01 00:15 1.6 4.1 
           Time A N 

출력

Time           
2016-01-01 00:00:00 2016-01-01 00:00 1.2 4.2 
2016-01-01 00:05:00 2016-01-01 00:05 1.6 4.1 
2016-01-01 00:10:00 2016-01-01 00:10 1.6 4.1 
2016-01-01 00:15:00 2016-01-01 00:15 1.6 4.1 
+0

덕분에 시간 값으로 인덱스를 필요로하지만 내가 출력을 위해 원하는 것은 마지막 다섯 개 레코드의 기울기 값입니다. 타임 스탬프는 00:00으로 시작하므로 00:04가 출력의 첫 번째 행입니다. (1-> 00:00, 2-> 00:01, 3-> 00:02, 4-> 00:03, 5-> 00:04) – Lcy