如何定位并打印Pandas DataFrame全局最大值所在的行?
找到DataFrame全局最大值所在的行
我完全懂你的困扰——你要找的是整个DataFrame里全局最大值对应的完整行,而不是某一列最大值的行,之前搜到的方法都没精准命中需求对吧?咱们用你的测试数据来一步步解决:
步骤1:先获取全局最大值
首先用df.max().max()拿到整个DataFrame里的最大值,这一步你已经做了:
import pandas as pd # 你的测试数据 test = pd.DataFrame({'att1' : [0.1, 0.001, 0.0001, 1, 2, 0.5, 0, -1, -2], 'att2':[0.01, 0.0001, 0.00001, 1.1, 2.2, 2.37, 0, -1.5, -2.5]}) # 获取全局最大值 global_max = test.max().max() print(global_max) # 输出: 2.37
步骤2:筛选出包含全局最大值的行
接下来用布尔索引定位目标行:
# 筛选出任意一列包含全局最大值的行 target_row = test[test.eq(global_max).any(axis=1)] print(target_row)
执行后会输出你想要的结果:
att1 att2 5 0.5 2.37
额外说明
- 这个方法还支持多行匹配:如果DataFrame里有多个行都包含全局最大值,它会把所有符合条件的行都返回给你。
- 针对你提到的异常值(比如-1.000000002),同样可以用这个逻辑:把
global_max换成那个异常值,就能精准定位到它所在的行,不管它藏在哪个列里,也不会被describe()的统计结果漏掉。
内容的提问来源于stack exchange,提问作者aviss
相关产品推荐
相关产品推荐

