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

如何获取Pandas中idxmax()对应行的上下行索引值

获取DataFrame目标行的上下索引值

要实现这个需求,核心是先定位目标索引在DataFrame索引序列中的位置,再根据位置获取相邻索引。以下是具体实现步骤和代码:

步骤说明

  1. 将DataFrame的索引转换为列表,方便通过位置定位目标索引
  2. 找到目标索引(max_index)在索引列表中的位置
  3. 根据位置获取上方(前一个)和下方(后一个)索引,同时处理边界情况(比如目标行是第一行或最后一行时没有相邻行)

代码实现

import pandas as pd

# 生成测试数据
df = pd.util.testing.makeDataFrame()
# 获取列A最大值对应的索引
max_index = df.A.idxmax()

# 将索引转为列表
index_list = df.index.tolist()
# 找到max_index在索引列表中的位置
pos = index_list.index(max_index)

# 获取上方索引(如果存在)
upper_index = index_list[pos - 1] if pos > 0 else None
# 获取下方索引(如果存在)
lower_index = index_list[pos + 1] if pos < len(index_list) - 1 else None

# 输出结果
print(f"上方索引: {upper_index}")
print(f"下方索引: {lower_index}")

关键细节

  • 当max_index是DataFrame的第一行时,upper_index会返回None;如果是最后一行,lower_index返回None,避免索引越界错误
  • 如果你的DataFrame使用的是连续整数索引,也可以直接通过max_index ±1获取,但这种方法仅适用于连续无缺失的整数索引;而上面的方法适用于任意类型的索引(比如字符串、日期、非连续整数等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:25:19