猿问

如何将 Pandas DataFrame 中的值与前一行和前一列中的值进行比较?

我有一个由两列填充浮点值的数据框。我需要在当前“h”值之前的索引处计算“h”的所有值减去“c”的所有值。因此,例如,对于第 1 行中的“h”,我需要计算 1.17322 - 1.17285(上一行中“c”的值)我尝试了几种不同的方法来完成此操作,包括使用:.iloc、. shift()、.groupby() 和 .diff(),但我无法准确找到我要查找的内容。


如果有人可以提供帮助,将不胜感激


    c        h

0   1.17285  1.17310

1   1.17287  1.17322

2   1.17298  1.17340

3   1.17346  1.17348

4   1.17478  1.17511

5   1.17595  1.17700

6   1.17508  1.17633

7   1.17474  1.17545

8   1.17463  1.17546

9   1.17224  1.17468

10  1.17437  1.17456

11  1.17552  1.17641

12  1.17750  1.17784

13  1.17694  1.17770


白板的微信
浏览 140回答 1
1回答

开满天机

尝试使用shift, 例如:df['c_shift'] = df['c'].shift()df['diff'] = df['h'] - df['c_shift']print(df)输出:          c        h  c_shift     diff0   1.17285  1.17310      NaN      NaN1   1.17287  1.17322  1.17285  0.000372   1.17298  1.17340  1.17287  0.000533   1.17346  1.17348  1.17298  0.000504   1.17478  1.17511  1.17346  0.001655   1.17595  1.17700  1.17478  0.002226   1.17508  1.17633  1.17595  0.000387   1.17474  1.17545  1.17508  0.000378   1.17463  1.17546  1.17474  0.000729   1.17224  1.17468  1.17463  0.0000510  1.17437  1.17456  1.17224  0.0023211  1.17552  1.17641  1.17437  0.0020412  1.17750  1.17784  1.17552  0.0023213  1.17694  1.17770  1.17750  0.00020当然,您可以一步完成:df['diff'] = df['h'] - df['c'].shift()
随时随地看视频慕课网APP

相关分类

Python
我要回答