如何解决这些字符是否具有某种映射功能? “ [1]”,“ [2]”,“ [3]”,...,“ [n]”
我正在使用这一行代码
df_mask = ~df[new_col_titles[:1]].apply(lambda x : x.str.contains('|'.join(filter_list),flags=re.IGNORECASE)).any(1)
为我的df创建一个遮罩。过滤器列表是
filter_list = ["[1]","[2]","[3]","[4]","[5]","[6]","[7]","[8]","[9]",..."[n]"]
但是我有一个奇怪的结果,我希望它能过滤df的第0列中有[1]...[n]
的行。但是它不是在过滤没有那些元素的行。入。虽然有某种模式。它将筛选出带有“字符”数字的行,我的意思是£55,2010),55*,55 *
任何人都可以解释发生了什么,是否有解决方法?
解决方法
如果要完全匹配过滤器列表中的项目,请使用re.escape()
来转义特殊字符。 [1]
是一个正则表达式,仅与数字1
匹配,而不与字符串[1]
匹配。
df_mask = ~df[new_col_titles[:1]].apply(lambda x : x.str.contains('|'.join(re.escape(f) for f in filter_list),flags=re.IGNORECASE)).any(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。