如何多次从一列中的某一行减去第N行

How to subtract Nth rows from a certain row within a column multiple times

我希望能够多次从另一组特定的行中减去特定数量的行。我假设我会使用 for 循环来执行此操作,但我无法弄清楚如何执行此操作。

例如,我想从同一田间的对照中减去治疗组的产量。每6行我想一遍又一遍地从第1-3行减去第4-6行

这是我目前所拥有的:

dfArray = df ['Crop_Yield'].to_numpy()

  `for i in range(len(dfArray('Crop_Yield') //6):`

提前感谢您帮助我解决这个问题。很抱歉,如果以前有人问过类似的问题,我看累了,但没有找到类似的东西。

下面是 table 的例子。

Treatment Field Crop_Yield
Control 1 Top 14
Control 2 Top 18
Control 3 Top 16
Fert A 1 Bottom 12
Fert A 2 Bottom 17
Fert A 3 Bottom 15
Control 4 Top 10
Control 5 Top 13
Control 6 Top 15
Fert B 4 Bottom 17
Fert B 5 Bottom 13
Fert B 6 Bottom 18

希望我没听错:

for i in range(len(df) // 6):
    df.loc[i * 6 : i * 6 + 2, "Crop_Yield"] -= df.loc[i * 6 + 3 : i * 6 + 5, "Crop_Yield"].to_numpy()

print(df)

打印:

   Treatment     Field  Crop_Yield
0    Control     1 Top           2
1    Control     2 Top           1
2    Control     3 Top           1
3     Fert A  1 Bottom          12
4     Fert A  2 Bottom          17
5     Fert A  3 Bottom          15
6    Control     4 Top          -7
7    Control     5 Top           0
8    Control     6 Top          -3
9     Fert B  4 Bottom          17
10    Fert B  5 Bottom          13
11    Fert B  6 Bottom          18