从时间序列中以升序和降序标识滚动意味着序列

时间:2017-09-19 06:35:42

标签: python pandas time-series

从time_series生成的一组滚动方法被传递到DataFrame:

rolling_means = {}
fast, slow, bands = 3, 15, 8
steps = np.linspace(fast, slow, bands)

for s in steps:
    X = pd.Series.rolling(time_series, window=int(s), center=False).mean()
    rolling_means[s] = X

rolling_means = pd.DataFrame(rolling_means)

rolling_means中的值序列有时会按升序或降序交替,但不会以任何特定顺序交替。例如,顶行(图1)和底行(图2)按从低到低的顺序递减:

图1: Figure 1

图2:

Figure 2

当序列完全按升序或降序排列时,如何获取日期和订单?

2 个答案:

答案 0 :(得分:1)

对于window = n,让我们假设4,rolling使用time_series中的所有数据,并计算4组的平均值; 不是单独的群组,对于每个步骤,它需要一个新成员,例如

数据= 1,2,3,4,5

第一步需要1,2,3,4 第二步骤2,3,4,5

因此,根据数据,一个应该比另一个大。您的时间序列中的数据是否具有日期的递增或递减顺序?如果没有,一切都应该如何。

答案 1 :(得分:0)

首先,将值的顺序分配给固定十进制数的列表:

data_set = np.around(rolling_means[0:].tolist(), decimals=3)

其次,将值以升序和降序以匹配的小数点排序:

ascending_order = np.around(sorted(data_set), decimals=3)
descending_order = np.around(sorted(data_set, reverse=True), decimals=3)

然后检查data_set是否与排序顺序之一匹配:

if np.all(data_set == ascending_order):
    do_statements_ascending

if np.all(data_set == descending_order):
    do_statements_descending