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

如何在Pandas中移除方括号内的文本?

如何移除Pandas列中方括号及其内部的内容

方法一:使用Pandas矢量化字符串操作(推荐)

Pandas的str.replace方法支持正则表达式,无需手动遍历,效率远高于逐行处理。用以下正则就能匹配并移除方括号及其内部的所有内容,同时自动清理括号前的多余空格:

import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'text_col': [
        'String [more string]',
        'Another example [with extra words]',
        'No brackets in this one',
        'Multi brackets [first] [second]'
    ]
})

# 处理列,生成清理后的新列
df['cleaned_text'] = df['text_col'].str.replace(r'\s*\[[^\]]*\]', '', regex=True)

处理后结果示例:

text_colcleaned_text
String [more string]String
Another example [with extra words]Another example
No brackets in this oneNo brackets in this one
Multi brackets [first] [second]Multi brackets

正则表达式说明:

  • \s*:匹配方括号前的任意数量空白字符(避免清理后留下多余空格)
  • \[:匹配左方括号(转义是因为[在正则中是特殊字符)
  • [^\]]*:匹配除右方括号]外的任意字符,0次或多次
  • \]:匹配右方括号

方法二:使用lambda函数配合正则(逐行处理)

如果需要用lambda函数实现,可以结合re.sub和apply完成:

import pandas as pd
import re

df = pd.DataFrame({
    'text_col': ['String [more string]', 'Another text [test]']
})

df['cleaned_text'] = df['text_col'].apply(lambda x: re.sub(r'\s*\[[^\]]*\]', '', x))

注意:这种方法是逐行遍历处理,当数据集较大时,效率会低于矢量化的str.replace,所以优先推荐第一种方法。

内容的提问来源于stack exchange,提问作者Bruno Ramos Martins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:12:11