我有一个数据框,我想删除所有括号和里面的东西。
我退房了: How can I remove text within parentheses with a regex?
删除数据的答案是
re.sub(r'\([^)]*\)', '', filename)
我也试过了
re.sub(r'\(.*?\)', '', filename)
但是,我得到了一个错误:expected a string or buffer
当我尝试使用列df['Column Name']
时,我得到了no item named 'Column Name'
我使用df.head()
检查了数据帧,它显示为一个干净的表,列名称与我希望的一样……但是当我使用re
表达式删除(stuff)时,它无法识别我拥有的列名称。
我通常使用
df['name'].str.replace(" ()","")
但是,我想删除括号和里面的内容…我如何使用regex或pandas做到这一点?
谢谢!
这是我使用的解决方案…谢谢你的帮助!
All['Manufacturer Standard Name'] = All['Manufacturer Standard Name'].str.replace(r"\(.*\)","")
如果数据中有多个
(...)
子字符串,则应考虑使用或者
区别在于
.*?
速度较慢,不匹配换行符,而[^()]
匹配除(
和)
之外的任何字符,并且非常高效,匹配换行符。第一个匹配(...(...)
,而第二个只匹配(...)
。如果要在删除这些子字符串后规范化所有空白,可以考虑
正则表达式} 将去掉任何可能的尾随空格。
\s*\([^()]*\)
将匹配0+空格,然后括号之间的字符串和^{不能直接在pandas对象上运行re函数。必须为对象内的每个元素循环它们。所以
Series.str.replace((r"\(.*\)", "")
只是Series.apply(lambda x: re.sub(r"\(.*\)", "", x))
的语法糖。相关问题 更多 >
编程相关推荐