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

如何查找Pandas DataFrame中3个最大值的行列索引位置

查找Pandas DataFrame中Top N最大值的位置索引

嘿,我来帮你搞定这个需求!要找出给定DataFrame里前3个最大值对应的[row index, column index],咱们可以用Pandas的几个工具方法组合实现,完全符合你的预期结果。

完整实现代码

import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame([[1, 10, 1], [6, 1, 1], [1,1,9]])

# 步骤1:将DataFrame转为多层索引的Series
stacked_df = df.stack()
# 这一步会把每个元素的位置变成(row_idx, col_idx)的双层索引

# 步骤2:提取前3个最大值
top3_values = stacked_df.nlargest(3)

# 步骤3:将双层索引转为目标格式的列表
result = top3_values.index.to_list()

print(result)  # 输出: [[0, 1], [2, 2], [1, 0]]

分步解释

  • df.stack():把原DataFrame的列索引“堆叠”成第二层索引,这样每个元素的索引就变成了(行索引, 列索引)的元组,方便我们直接获取位置信息。
  • nlargest(3):直接筛选出Series中数值最大的前3个元素,自动保留它们的索引信息。
  • index.to_list():把多层索引的元组转换成列表的格式,正好得到你想要的[[行, 列], ...]结构。

如果遇到有重复最大值的情况,这个方法也能正常工作——它会保留所有并列的最大值(如果数量超过3的话,会按索引顺序取前3个)。

内容的提问来源于stack exchange,提问作者Brigitte Maillère

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:39:40