Pandas在同一数据框中减去两行
我想知道如何在下面这个数据表(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