如何用Python Pandas提取情感评分各列的前4大值?
提取DataFrame各列独立的前N大值解决方案
嘿,我明白你的需求啦——你想要分别取出scat里每一列的前4大值,而不是只针对某一列取对应的整行数据对吧?
你之前用scat.nlargest(4, 'sentiment_pos')只能拿到sentiment_pos列前4大值对应的完整行,但要实现每列单独提取前N大值,可以用pandas的apply方法结合nlargest来完成,代码非常简洁:
# 对每一列单独提取前4大值,保留原索引 result = scat.apply(lambda col: col.nlargest(4)) print(result)
针对你给出的示例数据,运行这段代码后会得到:
sentiment_pos sentiment_negative 0.451 0.300 0.286 0.100 0.151 0.000 0.143 0.000
额外优化(可选)
如果希望结果的索引重置为从0开始的连续序号,让格式更整洁,可以在nlargest后加上reset_index(drop=True):
result = scat.apply(lambda col: col.nlargest(4).reset_index(drop=True))
这样输出的结果索引会变成0-3,每列的前4大值按从大到小排列,看起来更规整~
内容的提问来源于stack exchange,提问作者Aziz Bokhari
相关产品推荐
相关产品推荐

