减去两个连续的行并使用pandas保存在第一行中

2024-09-24 22:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个226列格式的数据帧:

**W    X    Y    Z.....**
  a    b    c    d.....
  e    f    g    h.....    

我想用以下方法减去Y列和Z列:

**W      X      Y          Z.....**
  a    (b-c)  (c-d)  (d-nextvalue).....
  e    (f-g)  (g-h)  (h-nextvalue).....   

我该怎么做呢?我是python的新手,提前谢谢


Tags: 数据方法格式新手nextvalue
2条回答

使用^{},如有必要,将第一列转换为^{}索引:

df = pd.DataFrame({
        'W':list('abc'),
         'X':[10,5,4],
         'Y':[7,8,9],
         'Z':[1,1,0],
         'E':[5,3,6],
})

df = df.set_index('W').diff(-1, axis=1)
print (df)
      X    Y    Z   E
W                   
a  3.0  6.0 -4.0 NaN
b -3.0  7.0 -2.0 NaN
c -5.0  9.0 -6.0 NaN

要创建“W”作为您可以执行的索引

df.set_index('W', inplace=True)

此外,您可以尝试以下方法:

for i in range(len(df.columns) - 1):
    df.iloc[:, i] = df.iloc[:, i] - df.iloc[:, i+1]

相关问题 更多 >