存在重复值时,如何通过loc仅返回单个值?
解决DeforAtMax仅保留单个最大值的方法
假设你用的是pandas处理数据,给你几个实用的实现方式:
方法一:用
idxmax()直接定位第一个最大值的索引再取值max_value = df.loc[df['DeforAtMax'].idxmax(), 'DeforAtMax']idxmax()会返回列中第一个最大值的行索引,搭配loc就能直接拿到单个值。方法二:筛选所有最大值后取第一个结果
max_val = df['DeforAtMax'].max() single_max = df.loc[df['DeforAtMax'] == max_val].iloc[0]['DeforAtMax']先算出列的最大值,再筛选出所有等于最大值的行,最后用
iloc[0]提取第一行对应的值。方法三:提取唯一值后匹配最大值
max_val = df['DeforAtMax'].max() single_max = next(val for val in df['DeforAtMax'].unique() if val == max_val)先获取列的唯一值集合,再找到其中等于最大值的项,只会返回单个结果。
如果你的数据结构不是pandas,核心思路也一样:先确定最大值,然后只取第一个(或任意一个)匹配到的实例,避免返回所有符合条件的结果。
内容的提问来源于stack exchange,提问作者Mohamad Melhem
相关产品推荐
相关产品推荐

