我有一个数据框,其中包含季度美国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().apply()将每次处理三个值的整个数据框,因此让我们查看一个特定窗口,该窗口从索引位置6开始:
GDP
6 8 # <- gdp_val
7 2 # <- gdp_val_1
8 3 # <- gdp_val_2
如何在当前窗口中访问gdp_val、gdp_val_1和gdp_val_2?
必须从ndarray输入中产生单个值...
。所以你只需要对其进行索引。我认为它是传递的第一个位置参数。编写一个虚拟函数来打印它传递的内容。 - wwiinumpy.all(a[1:] < a[:-1])
。 - wwii