Pandas从同一数据框中减去2行

2024-06-16 12:47:58 发布

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

如何从以下数据帧(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'

Tags: 数据dfpi事情keyerrorlccdifferencerecl
2条回答

可以使用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

您可以使用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

默认情况下,它按1行移动。在您的例子中,因为您要减去下一行而不是上一行,所以需要设置diff(-1)

相关问题 更多 >