Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这些字符是否具有某种映射功能&引用;[1] ",&引用;[2] ",&引用;[3] ",",&引用;[n] ";_Python_Pandas_Filter_Character - Fatal编程技术网

Python 这些字符是否具有某种映射功能&引用;[1] ",&引用;[2] ",&引用;[3] ",",&引用;[n] ";

Python 这些字符是否具有某种映射功能&引用;[1] ",&引用;[2] ",&引用;[3] ",",&引用;[n] ";,python,pandas,filter,character,Python,Pandas,Filter,Character,我正在使用这行代码 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]", &qu

我正在使用这行代码

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]
。但它并没有,它也在过滤没有这些元素的行。尽管如此,它还是有一种模式。它将过滤掉带有“字符”的数字行,我的意思是
552010),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)

很难想象发生了什么。您能提供示例输入和预期输出吗<代码>[]在正则表达式中具有特殊意义。如果要逐字匹配,则需要将其转义。
[1]
匹配数字
1
,但与方括号不匹配。