如何开始计算特定索引处的行值



我正在处理一个数据集,其中列的值取决于其正上方行(同一列(的值。由于此计算需要一定数量的数据点才能开始,因此我无法从索引0开始。以下是已经计算出初始值的数据集示例(col Net Change Avg(:

Close  Daily Returns  Net Change Avg
0   353.74           0.29             NaN
1   354.18           0.44             NaN
2   352.16          -2.02             NaN
3   354.57           2.41             NaN
4   354.08          -0.49             NaN
5   353.92          -0.16             NaN
6   353.55          -0.37             NaN
7   354.87           1.32             NaN
8   354.14          -0.73             NaN
9   351.44          -2.70             NaN
10  350.73          -0.71             NaN
11  349.31          -1.42             NaN
12  346.70          -2.61             NaN
13  349.30           2.60             NaN
14  346.47          -2.83             NaN
15  348.82           2.35       -0.382857
16  348.18          -0.64             NaN
17  345.64          -2.54             NaN
18  339.40          -6.24             NaN
19  339.11          -0.29             NaN

我需要使用索引15处的净变化平均值来计算一个值并将其存储在索引16中,然后使用索引16中存储的值来计算存储在索引17中的值,依此类推。这是我尝试过的,但它似乎只填充索引16,而不向下传播。

dia.loc[16:, 'Net Change Avg'] = dia['Net Change Avg'].shift(1) + 1

我是新来的,请原谅我所犯的任何格式或约定错误。

for i in range(16,len(df)):
df.loc[i,'Net Change Avg']=df.loc[i-1,'Net Change Avg']  

目前还不清楚您试图在索引16中插入什么值。我只是运行一个循环,它将复制索引15处的值,并继续到数据帧的长度

最新更新