Pandas如何提取dataframe指定列最后一个唯一值对应的全部行数据
简洁实现方案
直接用布尔索引即可,无需额外分组操作,一行代码就能完成:
df[df['Player'] == df['Player'].unique()[-1]]
逻辑说明
df['Player'].unique()会按Player在原表中首次出现的顺序返回所有唯一值,下标[-1]取到最后一个唯一值,也就是你示例中的Max- 外层用布尔索引过滤出所有Player等于该值的行,即可得到预期输出
如果需要适配更通用的场景(比如原表Player排列顺序混乱,需要取整个表最后一行所属Player的所有行),可以用更稳妥的写法:
last_player = df['Player'].iloc[-1] result = df[df['Player'] == last_player]
该写法无需依赖unique的返回顺序,不管表内数据怎么排列,都会提取整个DataFrame最后一行对应的Player的全部记录,适用性更强。
内容的提问来源于stack exchange,提问作者S23
相关产品推荐
相关产品推荐

