我在['符号']列中确定以下时间序列中的正面和负面时间段。我怎样才能得到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