首页 > 解决方案 > 从熊猫数据框列中减去增加的值

问题描述

我有一个看起来像这样的数据框

Name  a   
b     4   
c     4    
d     4 

我想从 a 列的每一行中减去一个数字,该数字由等差数列 (x=x+1) 给出并从 1 开始,因此结果将如下所示。

Name  a   
b     3   
c     2    
d     1 

如何做到这一点?

标签: pythonpandasdataframe

解决方案


Series.sub与 一起使用np.arange

df['a'] = df['a'].sub(np.arange(1, len(df) + 1))
#df['a'] = df['a'] - np.arange(1, len(df) + 1)

或者如果默认索引:

df['a'] = df['a'].sub(df.index + 1)

输出

  Name  a
0    b  3
1    c  2
2    d  1

我们还可以这样做:

df['a'] -= df.index + 1
df['a'] -= np.arange(1, len(df)+1)

推荐阅读