从切片中减去值

Subtract value from slice

我想从切片中减去一个值,以便更新这些行,但是,这些行永远不会改变。

df
A B C
1 1 3
2 3 4
5 6 8
2 3 4

idx = 1
val = 2
df.iloc[idx:-1,0].sub(val)

想要的结果:

A B C
1 1 3
0 3 4
3 6 8
0 3 4

我也试过以下方法

df.iloc[idx:-1,0] = df.iloc[idx:-1,0].sub(val)

使用 -= 更容易:

>>> df.iloc[idx:, 0] -= val
>>> df
   A  B  C
0  1  1  3
1  0  3  4
2  3  6  8
3  0  3  4
>>> 

您的代码不起作用的原因是您将 -1 添加到切片的末尾,这会跳过最后一个值,因此要修复您的代码,请尝试:

df.iloc[idx:, 0] = df.iloc[idx:, 0].sub(val)