Python 如何删除熊猫中多个括号之间的单词?

Python 如何删除熊猫中多个括号之间的单词?,python,regex,pandas,Python,Regex,Pandas,我想删除数据框中的括号和括号之间的单词。到目前为止,我已经搜索并发现这是非常有用的- df['Column'].str.replace(r"\(.*\)","") 但这将转换以下字符串- 柠檬(20%)、橙子(20%)和苹果(20%)都做好了 (…包含其他字母) 到 柠檬熟了 但是,我希望输出是- 柠檬、橘子和苹果熟。使用: df['Column'].str.replace(r"\((.*?)\)","") 输出 Lemon , orange and apple done. 解释 \(

我想删除数据框中的括号和括号之间的单词。到目前为止,我已经搜索并发现这是非常有用的-

df['Column'].str.replace(r"\(.*\)","")
但这将转换以下字符串-

柠檬(20%)、橙子(20%)和苹果(20%)都做好了

(…包含其他字母)

柠檬熟了

但是,我希望输出是-

柠檬、橘子和苹果熟。

使用:

df['Column'].str.replace(r"\((.*?)\)","")
输出

Lemon , orange  and apple  done.
解释

  • \(
    匹配字符
    字面意义(区分大小写)
  • *?
    匹配任何字符(行终止符除外)
  • \)
    按字面意思匹配字符
    (区分大小写)
  • p.S-我发现这是一个很好的regex在线测试工具(我与他们毫无关联)

    编辑

    添加一个
    +
    可能会对嵌套案例(未经过彻底测试)执行此操作-

    仅供参考-同意@Ulrich提出新问题:-)

    以下方法可以帮助您:
    
    df['Column'].str.replace('\(.*?\)','')
    

    对不起,有人回答后需要一段时间才能接受这个答案。顺便说一句,为什么会这样?是否放在括号内?@sudddddd这只是第一个逻辑上分开itOkay的捕获组,我自己在提供的链接中找到了答案:
    a*?
    记录为“匹配尽可能少的字符”,所以这就是重要的区别。@AdN14只需在去掉括号后修剪字符串/将字符串拆分为
    ”,然后执行
    ”。join()
    我在想,就像在
    \(
    ,无论如何,谢谢:)之前在我的Regexp中添加
    \s
    一样简单。请不要编辑您的问题来问另一个问题!问一个新的问题,使用相同的规则,比如做研究、尝试等。也不要忘记提供大量信息,比如你正在寻找解决方案的数据框架结构。
    \(+(.*?)\)+