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

Pandas为DataFrame含*或**的单元格高亮时re.error报错如何解决

问题解决

错误原因

pandas.Series.str.contains() 默认使用正则匹配模式,* 是正则中的特殊量词,用于匹配前一个字符0次或多次,单独使用*作为匹配规则时,正则解析逻辑找不到对应的前置修饰字符,因此抛出正则解析错误。

修复方案

有两种简单的修改方式,选任意一种即可:

  1. 关闭正则匹配模式,使用普通字符串包含匹配,最适合当前需求
  2. 对正则特殊字符*进行转义,写成\*再做匹配

这里推荐第一种方案,逻辑更简单不容易出错,完整可运行代码如下:

import numpy as np
import pandas as pd

df = pd.DataFrame({'Data': ['foo', '*', 'bar'],
                   'myda': ['**', '*', 'wer']})

def highlight_(s, props=''):
    # 加regex=False关闭正则匹配,na=False处理非字符串/空值场景避免报错
    return np.where(s.str.contains("*", regex=False, na=False), props, '')

# 应用样式后可直接在Jupyter环境渲染,或导出为html
styled_df = df.style.apply(highlight_, props='background-color:yellow', axis=1)
# 如果需要查看生成的样式代码可以打印styled_df.render()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:51:03