从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)按从低到低的顺序递减:
图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