Python Pandas:如何高亮巧克力口味对应的数据行?
嘿,我来帮你搞定这个高亮巧克力口味行的问题!你之前的代码里只是调用了df.style但没有定义具体的高亮规则,所以才没看到预期的效果。下面是完整的可运行解决方案:
完整代码实现
import pandas as pd # 读取Excel文件并按销量降序排序 Excel_file = "Cookies2.xlsx" x = pd.read_excel(Excel_file) sorted_by_Cookie_Boxes_Sold = x.sort_values(['Cookie_Boxes_Sold'], ascending=False) df = pd.DataFrame(sorted_by_Cookie_Boxes_Sold) # 定义高亮巧克力行的函数 def highlight_chocolate_rows(row): # 注意:这里的列名要和你DataFrame中的实际列名完全匹配(比如如果列名是"口味"就改成row["口味"]) if row['Cookie_Flavor'] == '巧克力': # 用金色背景高亮,你可以替换成任意喜欢的颜色(比如#ffcccc是浅粉色) return ['background-color: #ffd700'] * len(row) # 非巧克力口味的行返回空样式 return [''] * len(row) # 将样式应用到DataFrame styled_table = df.style.apply(highlight_chocolate_rows, axis=1) # 在Jupyter Notebook中直接运行该行即可查看高亮后的表格 styled_table # 如果需要导出到Excel保存,取消下面一行的注释 # styled_table.to_excel("highlighted_cookies.xlsx", index=False)
关键说明
- 高亮函数逻辑:
highlight_chocolate_rows函数会逐行检查数据,当某行的Cookie口味是"巧克力"时,为整行设置背景色;其他行保持默认样式。 - axis参数:
apply()方法中指定axis=1表示按行应用函数,如果缺省的话会按列处理,这也是你之前可能没成功的原因之一。 - 列名匹配:一定要确保判断的列名和你的数据完全一致,包括大小写、空格等细节,比如列名是
Cookie Flavor(带空格),就要改成row['Cookie Flavor']。
自定义小技巧
- 你可以替换
background-color的十六进制值来改变高亮颜色,比如:- 浅红色:
#ffcccc - 浅绿色:
#90ee90 - 浅蓝色:
#add8e6
- 浅红色:
内容的提问来源于stack exchange,提问作者Joey Jayman
相关产品推荐
相关产品推荐

