我有一个列减法我怎么能在 python

I have a column subtraction how can i do it in python

我有一个交叉减法问题,我想得到相同的解决方案,我有一个如下所示的数据框

input Y = 2

|X  | A | Z  |
|20 | 0 |18  |
|30 | 0 |-12 |
|40 | 0 |-52 |
|50 | 0 |-102|
    :
    :
    :

Y 的公式由用户输入,其中

z(row1) = x(row1) - Y
z(row2) = z(row1) - x(row2)
z(row3) = z(row2) - x(row3)
:
:
so on...... 

有没有一种方法可以使用 python 使用循环来对此进行编码?

您实际上是在计算负值和偏移量 y 的累加和(第一行除外)

y = 2    
df.loc[:, 'Z'] = -df['X'].cumsum() + [40]*df.index.size - [y]*df.index.size

40是为了撤销第一行的否定,也就是

df.loc[:, 'Z'] = -df['X'].cumsum() + [2*df.loc[0]['X']]*df.index.size - [y]*df.index.size

print(df)
#    X    Z
#0  20   18
#1  30  -12
#2  40  -52
#3  50 -102

由于您只使用一次输入,所以我不会将第一个方程式放入循环中。 如果你想存储 x 的数据你也必须添加这个

x = 20    
z[0] = x - y
for i in range(9): # where 9 is number of rows you want to add
    x += 10
    z[i+1] = z[i] - x