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

在Pandas的Applymap()中调用其他函数返回值实现单元格着色

实现DataFrame单元格动态颜色编码

当然可以实现,只需要修改你的color函数,让它调用net_60_comp函数计算出动态阈值dis_to_60,再用这个阈值替代硬编码的数值进行判断即可。

修改后的代码示例:

首先保留你的自定义计算函数:

def net_60_comp(amount,f_rate=0.043):
    dis_to_60 = amount * ((1+f_rate)**(60/365)-1)
    dis_perc_to_60 = dis_to_60/amount
    return(dis_to_60,dis_perc_to_60)

然后修改color函数,动态获取阈值:

def color(val):
    # 将当前单元格值作为合约金额传入,获取dis_to_60
    dis_to_60, _ = net_60_comp(val)
    # 根据单元格值与dis_to_60的对比设置背景色
    bg_color = 'green' if val > dis_to_60 else 'red'
    return f'background-color: {bg_color}'

# 应用样式到DataFrame
df.style.applymap(color)

注意事项:

如果你的DataFrame中存在非数值类型的单元格,可以添加异常处理避免报错:

def color(val):
    try:
        # 转换为数值类型,兼容可能的字符串格式数值
        num_val = float(val)
        dis_to_60, _ = net_60_comp(num_val)
        bg_color = 'green' if num_val > dis_to_60 else 'red'
    except (ValueError, TypeError):
        # 非数值单元格保持默认样式
        bg_color = ''
    return f'background-color: {bg_color}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:42:43