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

如何在Pandas的逗号分隔列中用REGEX移除[CS][LV]前的文本及括号内容?

在Pandas中用正则移除逗号分隔列中的特定内容

需求:删除DataFrame某列中所有包含[CS]、[LV]的片段(包括标签本身及其前面的文本),处理后的列保留剩余的逗号分隔内容。

输入数据

colA
My Company Ltd [CS], address, nbc [LV], state [NP], pc [SS], country
Business Plc [CS], address, abc [LV], state [NP], code [SS], country
Work Harder Inc [CS], address, xyz[CS], state [NP], code [SS], country
Company Business People [CS], address, typode [SS], country, nlp [CS]

解决方案

正则表达式说明

使用正则r'[^,]*\[(CS|LV)\],?\s*'匹配需要删除的片段,各部分含义:

  • [^,]*:匹配逗号前的任意非逗号字符(即标签前的所有文本)
  • \[(CS|LV)\]:精确匹配[CS]或[LV],转义方括号是因为其在正则中属于特殊语法
  • ,?\s*:匹配可选的逗号及后续任意空白字符,避免删除后留下多余的分隔符或空格

完整代码实现

import pandas as pd

# 构造示例DataFrame
data = {
    'colA': [
        'My Company Ltd [CS], address, nbc [LV], state [NP], pc [SS], country',
        'Business Plc [CS], address, abc [LV], state [NP], code [SS], country',
        'Work Harder Inc [CS], address, xyz[CS], state [NP], code [SS], country',
        'Company Business People [CS], address, typode [SS], country, nlp [CS]'
    ]
}
df = pd.DataFrame(data)

# 执行正则替换
df['colA'] = df['colA'].str.replace(r'[^,]*\[(CS|LV)\],?\s*', '', regex=True)

# 可选:处理可能存在的首尾多余逗号/空格(根据实际情况)
df['colA'] = df['colA'].str.strip(', ')

print(df)

处理结果

colA
address, state [NP], pc [SS], country
address, state [NP], code [SS], country
address, state [NP], code [SS], country
address, typode [SS], country

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:40:27