我有一個數據框,以美國季度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