You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataFrame列行值减除运算求助:最后一行结果为NA需修正

解决DataFrame最后一行计算值为NA的问题

核心思路

先通过偏移行的方式计算常规行的比例值,再手动替换最后一行的结果为-1,覆盖默认生成的NA值。

代码实现(以pandas为例)

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'ID': [1,2,3,4,5],
    'Price': [20,18,21,16,19]
})

# 计算(下一行Price - 当前行Price)/当前行Price
df['Result'] = (df['Price'].shift(-1) - df['Price']) / df['Price']

# 替换最后一行的NA为-1
df.loc[df.index[-1], 'Result'] = -1

# 保留4位小数对齐示例格式
df['Result'] = df['Result'].round(4)

print(df)

代码说明

  • df['Price'].shift(-1):将Price列整体上移一行,让当前行能直接匹配下一行的值做计算
  • 常规计算后最后一行因无后续数据会生成NA,通过df.index[-1]定位最后一行,直接赋值为-1
  • round(4)用于统一结果的小数位数,和示例输出格式保持一致

运行后输出结果与示例完全匹配:

ID  Price  Result
0   1     20  -0.1000
1   2     18   0.1667
2   3     21  -0.2381
3   4     16   0.1875
4   5     19  -1.0000

内容的提问来源于stack exchange,提问作者Prad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:10:30