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

如何为pandas DataFrame的WoE列添加颜色渐变填充效果?

解决方案

可行性说明

完全可以实现,分为交互式环境展示、导出Excel两种落地场景,具体操作如下:

场景1:Jupyter Notebook/Lab 等交互式环境展示

直接使用pandas内置的Styler模块即可快速实现,示例代码如下:

import pandas as pd

# 替换为你自己的DataFrame即可
df = pd.DataFrame({
    '特征名称': ['年龄分层', '月收入区间', '逾期次数', '名下资产量', '征信查询频次'],
    'WoE': [0.92, -0.51, 1.37, -0.82, 0.28]
})

# 仅对WoE列添加颜色渐变填充
styled_df = df.style.background_gradient(
    subset=['WoE'], # 限定生效列
    cmap='RdBu_r', # 配色方案:负值为红色、0为白色、正值为蓝色,适配风控场景WoE展示习惯
    vmin=df['WoE'].min(),
    vmax=df['WoE'].max()
)

# 直接运行即可看到带渐变效果的表格
styled_df

可调整cmap参数更换配色,常用可选值包括coolwarm、viridis、YlOrRd等。

场景2:导出到Excel文件并保留渐变填充

需要搭配xlsxwriter或openpyxl库实现,以xlsxwriter为例操作如下:

  • 先安装依赖:pip install xlsxwriter
  • 执行导出代码:
writer = pd.ExcelWriter('WoE统计结果.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='WoE明细', index=False)

# 获取工作簿、工作表对象
workbook = writer.book
worksheet = writer.sheets['WoE明细']

# 定位WoE列的位置,适配动态列顺序
woe_col_idx = df.columns.get_loc('WoE')
# 数据行范围(跳过表头行)
start_row = 1
end_row = len(df)

# 添加三色渐变填充规则
worksheet.conditional_format(
    start_row, woe_col_idx, end_row, woe_col_idx,
    {
        'type': '3_color_scale',
        'min_color': '#5A8AC6', # 最小值对应颜色
        'mid_color': '#FFFFFF', # 中间值对应颜色
        'max_color': '#E86758' # 最大值对应颜色
    }
)

writer.close()

内容的提问来源于stack exchange,提问作者Giampaolo Levorato

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:45:01