为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2022-07-05 15:39:33
我有一个格式为 226 列的 pandas 数据框:**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的菜鸟,在此先感谢
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

使用DataFrame.diff并在必要时将第一列转换为索引DataFrame.set_index:


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


查看完整回答
反对 回复 2022-07-05
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

要创建“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]


查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信