如何在DataFrame中提取最高分的最后一条重复记录?
如何提取DataFrame中得分最高的最后一条记录?
嘿,这个需求其实很容易实现,用Pandas的基础操作就能搞定。我先给你对应示例数据的完整代码,再拆解步骤:
首先,先还原你给出的示例DataFrame(这里我假设两列分别是content和score,如果你的列名不同,替换成实际名称就行):
import pandas as pd # 构造示例数据 data = { 'content': ['a b c', 'a b c', 'b c d', 'c d e', 'c d e', 'd e f'], 'score': [0.7, 0.7, 0.8, 0.9, 0.9, 0.8] } df = pd.DataFrame(data)
接下来有两种实现方式,本质逻辑是一样的:
方式一:分步操作(更易理解)
# 第一步:找到得分列的最高分 max_score = df['score'].max() # 第二步:筛选出所有得分等于最高分的行,再取最后一条 target_row = df[df['score'] == max_score].iloc[-1]
方式二:链式操作(更简洁)
target_row = df[df['score'] == df['score'].max()].iloc[-1]
执行后,target_row就是你要的第4行(索引为4的那条c d e 0.9记录)。
简单解释下逻辑:
df['score'].max():获取得分列的最大值,也就是示例中的0.9df[df['score'] == max_score]:通过布尔索引筛选出所有得分等于最高分的行.iloc[-1]:取筛选结果中的最后一行,完美解决多条重复最高分的情况
内容的提问来源于stack exchange,提问作者user119420
相关产品推荐
相关产品推荐

