小编Cod*_*orf的帖子

如何访问数据帧上滚动窗口内的单个元素

我有一个以季度美国 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
Run Code Online (Sandbox Code Playgroud)

我正在使用df.rolling().apply(find_recession),但我不知道如何在我的find_recession()函数中访问滚动窗口的各个元素。

gdp['Recession_rolling'] = gdp['GDP'].rolling(window=3).apply(find_recession_start)
Run Code Online (Sandbox Code Playgroud)

如何访问滚动窗口中的单个元素,以便进行 gdp_val_2 < gdp_val_1 < gdp_val 之类的比较?

.rolling().apply() 将遍历整个数据帧,一次 3 个值,所以让我们看看一个特定的窗口,它从索引位置 6 开始:

   GDP
6  8   # <- gdp_val
7  2   # <- gdp_val_1
8  3   # <- gdp_val_2
Run Code Online (Sandbox Code Playgroud)

如何在当前窗口中访问 gdp_val、gdp_val_1 和 gdp_val_2?

python window apply dataframe pandas

5
推荐指数
1
解决办法
2882
查看次数

标签 统计

apply ×1

dataframe ×1

pandas ×1

python ×1

window ×1