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

如何用Pandas列值作为索引获取另一行数据?代码报错求助

问题核心

你踩的坑是**max_idx是一列Series数据(每行对应各自周期的高点索引),不是单个整数**,所以直接把它当索引参数用(比如df.loc['max_idx', 'High']这种写法)肯定会报错,因为pandas没法用一列值去单索引定位。

修复方案

根据max_idx的类型分两种处理方式:

1. 如果max_idx是整数位置索引(比如0、1、2这种行的位置序号)

用take方法批量提取每个max_idx对应的High值:

df["high_int"] = df.Slope * (df.index - df['max_idx']) + df['High'].take(df['max_idx'])

2. 如果max_idx是行标签(比如日期、自定义字符串索引)

用loc配合.values来对齐数据,避免索引不匹配的问题:

df["high_int"] = df.Slope * (df.index - df['max_idx']) + df['High'].loc[df['max_idx']].values
额外注意
  • 别再把df['max_idx']当单个整数用,它是一列数据,必须用批量索引的方式取对应值
  • 要确保max_idx里的每个值都在DataFrame的索引/位置范围内,不然会报索引越界错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:22:01