如何在DataFrame中同时高亮显示3个最大值和3个最小值
同时高亮DataFrame每列的前3大值和前3小值
直接修改你的函数,让它同时识别每列的前3大值和前3小值,并分别赋予不同的背景色:
def highlight_top3_bottom3(s): # 获取当前列的前3大值和前3小值 top3 = s.nlargest(3).values bottom3 = s.nsmallest(3).values # 对每个值判断,返回对应的样式 styles = [] for v in s: if v in top3: styles.append('background-color: lightgreen') elif v in bottom3: styles.append('background-color: lightcoral') else: styles.append('') return styles
使用方法
调用DataFrame的style.apply()方法即可应用这个样式:
# 假设你的DataFrame名为df styled_df = df.style.apply(highlight_top3_bottom3) # 展示样式后的表格 styled_df
说明
- 前3大值会被标记为浅绿色,前3小值会被标记为浅红色
- 如果某列存在重复值,
nlargest和nsmallest会包含重复项,确保所有符合条件的重复值都被高亮
内容的提问来源于stack exchange,提问作者joblessman
相关产品推荐
相关产品推荐

