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

如何在Pandas DataFrame中将各类'Heb'相关文本统一替换为'HEB'?

解决Pandas结合Sidetable多匹配条件替换的报错问题
  • 报错原因:str.contains()在设置regex=False时,仅支持单个字符串作为匹配参数,无法接收列表。当你传入列表时,它会尝试对列表调用upper()方法做大小写统一,但列表本身没有这个属性,因此触发AttributeError。

  • 修复方案:
    将多个匹配项用|拼接成正则表达式模式串(|表示“或”逻辑),同时保留case=False忽略大小写,即可一次性匹配所有目标内容。

完整代码示例

import pandas as pd
import sidetable

# 构造示例数据
data = {
    'Description': ['HEB', 'HEB#123', 'HEB online', 'H-E-B Gas', 'Heb Carwash'],
    'Amount': [100.00]*5
}
df = pd.DataFrame(data)

# 多条件匹配替换的正确写法
df['Description'] = df.st.replace(
    (df['Description'].str.contains(r'HEB|H-E-B|Heb online', case=False), 'HEB')
)

print(df)

输入输出示例

输入表格

DescriptionAmount
HEB100.00
HEB#123100.00
HEB online100.00
H-E-B Gas100.00
Heb Carwash100.00

输出表格

DescriptionAmount
HEB100.00
HEB100.00
HEB100.00
HEB100.00
HEB100.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:13:34