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

Pandas DataFrame.ne对比None返回False的高亮差异方案咨询

问题解决方法

Pandas 内置的 ne() 方法遵循 Python 原生相等性判断逻辑:None == None 会返回 True,因此你调用 ne() 判定两个 None 为相等值、返回 False,这和你需要的判定规则不符。

你可以自定义对比掩码,在原有 ne() 的结果基础上,额外加上「两个对比位置均为空值」的判定条件即可,修改后的代码如下:

def highlight_diff(data, color='yellow'):
    attr = f'background-color: {color}'
    other = data.xs('Original', axis='columns', level=-1)
    # 自定义不相等判定规则:原始ne规则 + 双方均为空值的情况
    diff_mask = data.ne(other, level=0) | (data.isna() & other.isna())
    return pd.DataFrame(np.where(diff_mask, attr, ''),
                    index=data.index, columns=data.columns)

这个方案同时兼容 None 和 NaN 两种空值场景,两种空值成对出现时都会被判定为不相等、标记对应颜色。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 19:54:05