为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白板的微信 2023-04-11 15:52:43
我有一个由两列填充浮点值的数据框。我需要在当前“h”值之前的索引处计算“h”的所有值减去“c”的所有值。因此,例如,对于第 1 行中的“h”,我需要计算 1.17322 - 1.17285(上一行中“c”的值)我尝试了几种不同的方法来完成此操作,包括使用:.iloc、. shift()、.groupby() 和 .diff(),但我无法准确找到我要查找的内容。如果有人可以提供帮助,将不胜感激    c        h0   1.17285  1.173101   1.17287  1.173222   1.17298  1.173403   1.17346  1.173484   1.17478  1.175115   1.17595  1.177006   1.17508  1.176337   1.17474  1.175458   1.17463  1.175469   1.17224  1.1746810  1.17437  1.1745611  1.17552  1.1764112  1.17750  1.1778413  1.17694  1.17770
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

尝试使用shift, 例如:

df['c_shift'] = df['c'].shift()

df['diff'] = df['h'] - df['c_shift']

print(df)

输出:


          c        h  c_shift     diff

0   1.17285  1.17310      NaN      NaN

1   1.17287  1.17322  1.17285  0.00037

2   1.17298  1.17340  1.17287  0.00053

3   1.17346  1.17348  1.17298  0.00050

4   1.17478  1.17511  1.17346  0.00165

5   1.17595  1.17700  1.17478  0.00222

6   1.17508  1.17633  1.17595  0.00038

7   1.17474  1.17545  1.17508  0.00037

8   1.17463  1.17546  1.17474  0.00072

9   1.17224  1.17468  1.17463  0.00005

10  1.17437  1.17456  1.17224  0.00232

11  1.17552  1.17641  1.17437  0.00204

12  1.17750  1.17784  1.17552  0.00232

13  1.17694  1.17770  1.17750  0.00020

当然,您可以一步完成:


df['diff'] = df['h'] - df['c'].shift()


查看完整回答
反对 回复 2023-04-11
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信