Pandas在同一数据框中减去两行

9 投票
2 回答
43035 浏览
提问于 2025-04-30 23:41

我想知道如何在下面这个数据表(df)中,把一行减去另一行:

RECL_LCC          1          2          3
RECL_LCC  35.107655  36.015210  28.877135
RECL_PI   36.961519  43.499506  19.538975

我想做的事情类似于:

df['Difference'] = df['RECL_LCC']-df['RECL_PI']

但是这样做会得到:

*** KeyError: 'RECL_LCC'
暂无标签

2 个回答

4

你可以使用 diff() 这个函数:

df.set_index('RECT_LCC', inplace=True)
df.diff(-1)


                    1           2         3
RECT_LCC            
RECT_LCC    -1.853864   -7.484296   9.33816
RECL_PI           NaN         NaN       NaN

默认情况下,这个函数是向下移动一行的。在你的情况中,因为你是要减去下一行的值,而不是上一行,所以你需要设置 diff(-1)。

10

你可以通过索引值来选择行,使用 df.loc

In [98]: df.loc['Diff'] = df.loc['RECL_LCC'] - df.loc['RECL_PI']

In [99]: df
Out[99]: 
RECL_LCC          1          2          3
RECL_LCC  35.107655  36.015210  28.877135
RECL_PI   36.961519  43.499506  19.538975
Diff      -1.853864  -7.484296   9.338160

撰写回答