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.
解释
\(
匹配字符(
字面意义(区分大小写)*?
匹配任何字符(行终止符除外)\)
按字面意思匹配字符)
(区分大小写)+
可能会对嵌套案例(未经过彻底测试)执行此操作-
仅供参考-同意@Ulrich提出新问题:-)以下方法可以帮助您:
df['Column'].str.replace('\(.*?\)','')
对不起,有人回答后需要一段时间才能接受这个答案。顺便说一句,为什么会这样?是否放在括号内?@sudddddd这只是第一个逻辑上分开itOkay的捕获组,我自己在提供的链接中找到了答案:a*?
记录为“匹配尽可能少的字符”,所以这就是重要的区别。@AdN14只需在去掉括号后修剪字符串/将字符串拆分为“
”,然后执行”。join()
我在想,就像在\(
,无论如何,谢谢:)之前在我的Regexp中添加\s
一样简单。请不要编辑您的问题来问另一个问题!问一个新的问题,使用相同的规则,比如做研究、尝试等。也不要忘记提供大量信息,比如你正在寻找解决方案的数据框架结构。
\(+(.*?)\)+