从切片中减去值
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)
我想从切片中减去一个值,以便更新这些行,但是,这些行永远不会改变。
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)