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

如何使用pandas对dataframe进行条件格式化并转换为图片

依赖安装

首先安装实现所需的第三方库:

pip install pandas numpy dataframe-image

完整实现代码

import pandas as pd
import numpy as np
import dataframe_image as dfi

# 读取数据,样例代码为构造测试数据,实际使用替换为pd.read_excel/ pd.read_csv读取你的源文件即可
df = pd.DataFrame({
    'key': ['A', 'B', 'C', 'D', 'E'],
    'base': [120, 200, 89, 150, 95],
    'c1': [0.1, 0.3, 0, 0.5, 0.2],
    'c2': [0.7, 0, 0.2, 0.4, 0.1],
    'c3': [0.2, 0.5, 0.8, 0, 0.3],
    'c4': [0.4, 0.1, 0.3, 0.6, 0],
    'c5': [0, 0.6, 0.1, 0.2, 0.7],
    'c6': [0.3, 0, 0.5, 0.1, 0.4]
})

# 定位需要格式化的c1-c6列
format_cols = [col for col in df.columns if col.startswith('c')]
# 计算c1-c6全量数值的全局最大最小值,保证所有列用同一套色阶规则
all_vals = df[format_cols].values.flatten()
global_min = all_vals.min()
global_max = all_vals.max()

# 替换c1-c6列的0值为空
df[format_cols] = df[format_cols].replace(0, np.nan)

# 配置样式
styler = df.style
# base列添加数据条
styler = styler.bar(subset=['base'], color='#5fba7d', align='mid')
# c1-c6列配置统一色阶+百分比格式,空值不显示
styler = styler.background_gradient(
    subset=format_cols,
    cmap='Blues', # 可替换为你需要的色系,比如Greens、Oranges等
    vmin=global_min,
    vmax=global_max
).format(
    subset=format_cols,
    formatter='{:.1%}'.format,
    na_rep=''
)

# 导出为图片,若需要更高清晰度,可将table_conversion改为'chrome'(需要本地安装Chrome浏览器)
dfi.export(styler, '格式化后表格.png', table_conversion='matplotlib')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:54:03