我在['符號']列中確定以下時間序列中的正面和負面時間段。我怎樣才能得到1和-1的每個持續時間,然後用1和-1來計算週期數?如何查找熊貓時間序列的事件持續時間
因此,如果我在['sign']列中連續五個'1',然後連續三個'-1',然後是兩個'1',則答案是持續時間:5天,3天和2天。然後數數。 '1':2和 '-1':1.
import pandas_datareader.data as web
import datetime as dt
import numpy as np
import pandas as pd
end = dt.datetime(2016, 12, 31)
start = dt.date(end.year-15, end.month, end.day)
aapl = web.DataReader('AAPL', 'yahoo', start, end)['Adj Close']
aapl = pd.DataFrame(aapl)
aapl['ema'] = aapl.ewm(200).mean()
aapl['diff'] = (aapl['Adj Close']/aapl['ema']) - 1
aapl['sign'] = np.sign(aapl['diff'])
UPDATE: 我意識到,需要週期其中sign = '1',並簽署=單獨的計數 '-1',當涉及持續時間。這是對'1'和'-1'時期的描述性統計。
大熊貓版本:0.19.2
對於UPDATE部分,你可以添加一個樣本和預期的o/p? – Divakar
In [1]:duration_up_count(a) Out [2]:(array([5,2]))使用你的數組,等價於down。然後跳過累計計數。 – cJc