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

Python pandas如何取上一行Hi值 实现(Hi+Hi_1)*qi公式计算

实现方法

你需要的「取上一行Hi字段值」的逻辑,用pandas内置的shift()方法即可实现,该方法可以按指定步长偏移序列,偏移后空值默认填充NaN,和Excel中首行无上行数据时的计算逻辑一致。

直接替换你代码里的???部分即可:

df['gini_coef'] = (df['Hi'] + df['Hi'].shift(1)) * df['qi']

常见场景调整

  • 如果需要给首行的上一行Hi设置默认值(比如设为0),可以给shift传入填充参数:
    # 首行无上行数据时,Hi_1默认取0
    df['gini_coef'] = (df['Hi'] + df['Hi'].shift(1, fill_value=0)) * df['qi']
    
  • 如果数据需要按指定维度分组、仅在组内取上一行值(比如不同年份、不同类别下不能跨组取上一行),需要先分组再偏移:
    # 示例:按group_col字段分组,组内单独取上一行Hi
    df['gini_coef'] = (df['Hi'] + df.groupby('group_col')['Hi'].shift(1)) * df['qi']
    
  • 计算前请确认Hi、qi字段为数值类型,如果是读入时自动识别为字符串类型,先做类型转换避免计算报错:
    df['Hi'] = pd.to_numeric(df['Hi'])
    df['qi'] = pd.to_numeric(df['qi'])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:24:17