我有一个数据框,以美国季度GDP作为列值。我想一次查看3个值,并找出GDP连续两个季度下降的指数。这意味着我需要将df ['GDP']内的各个元素相互进行比较,分组为3.如何访问数据框上的滚动窗口中的单个元素
下面是一个示例数据框。
df = pd.DataFrame(data=np.random.randint(0,10,10), columns=['GDP'])
df
GDP
0 4
1 4
2 4
3 1
4 4
5 4
6 8
7 2
8 3
9 9
我使用df.rolling().apply(find_recession)
,但我不知道我怎么可以在我的find_recession()
函数内访问滚动窗口的各个元素。
gdp['Recession_rolling'] = gdp['GDP'].rolling(window=3).apply(find_recession_start)
如何才能获得滚动窗口内的各个元素,所以我可以作出gdp_val_2 < gdp_val_1 < gdp_val这样的比较? 。
的.rolling()申请()将经过整个数据帧,3个值的时间,让我们来看看一个特定的窗口,它开始于索引位置6:
GDP
6 8 # <- gdp_val
7 2 # <- gdp_val_1
8 3 # <- gdp_val_2
我如何在当前窗口中访问gdp_val,gdp_val_1和gdp_val_2?
你的问题还不清楚。一小部分数据和预期结果将会有所帮助。请阅读[MCVE](http://stackoverflow.com/help/mcve)。 – Kartik
[The docs](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.window.Rolling.apply.html#pandas.core.window.Rolling.apply)表示该函数'''必须从ndarray输入中产生一个值...''。所以你只需将*索引到*它。我想这是通过的第一个位置参数。编写一个虚函数来打印它传递的内容。 – wwii
尝试'''numpy.all(a [1:] wwii