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

我有一个格式为 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的菜鸟,在此先感谢


达令说
浏览 99回答 2
2回答

呼唤远方

使用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   EW                   a  3.0  6.0 -4.0 NaNb -3.0  7.0 -2.0 NaNc -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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python