You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas对分类器预测结果数据框做条件颜色格式化并导出至Excel

当然可以实现!Pandas的Styler类正好能帮你搞定这种条件格式的需求,下面是具体的实现步骤和代码示例,完全贴合你的需求:

1. 先构造示例数据(和你给出的结构一致)

首先我们先创建一个和你描述匹配的DataFrame,方便后续演示:

import pandas as pd

# 构造示例数据
data = {
    'actual_label': [1, 1],
    'predicted_label': [1, 2]
}
df = pd.DataFrame(data)

2. 定义条件样式函数

接下来写一个函数,用来判断每行的预测是否正确,并返回对应的背景色样式:

def highlight_prediction(row):
    # 对比实际标签和预测标签
    if row['actual_label'] == row['predicted_label']:
        # 预测正确:整行设置浅绿色背景
        return ['background-color: #90EE90'] * len(row)
    else:
        # 预测错误:整行设置浅红色背景
        return ['background-color: #FFCCCB'] * len(row)

3. 应用样式到DataFrame

用style.apply()方法把上面的样式函数应用到每一行:

styled_df = df.style.apply(highlight_prediction, axis=1)

4. 导出到Excel文件

最后把带样式的DataFrame导出到Excel,这里需要注意指定engine='openpyxl'(如果没装这个库,先执行pip install openpyxl安装):

styled_df.to_excel('prediction_results.xlsx', engine='openpyxl', index=False)

额外小技巧:只高亮特定列

如果你不想整行变色,只想高亮predicted_label列,可以修改样式函数:

def highlight_prediction_col(row):
    # 初始化所有列的样式为空
    styles = [''] * len(row)
    # 获取predicted_label列的索引位置
    pred_col_idx = row.index.get_loc('predicted_label')
    if row['actual_label'] == row['predicted_label']:
        styles[pred_col_idx] = 'background-color: #90EE90'
    else:
        styles[pred_col_idx] = 'background-color: #FFCCCB'
    return styles

# 应用修改后的样式
styled_df = df.style.apply(highlight_prediction_col, axis=1)
# 同样导出到Excel
styled_df.to_excel('prediction_results_col.xlsx', engine='openpyxl', index=False)

这样导出的Excel文件里,预测正确的条目会显示浅绿色背景,错误的显示浅红色,完全符合你的要求~

内容的提问来源于stack exchange,提问作者Haroon S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:14:25