根据部分字符串值(也具有特殊字符)过滤数据框

时间:2020-08-05 06:01:33

标签: python-3.x regex pandas

我正在尝试在dataframe列中过滤与我列表中的值列表匹配的基于dataframe的部分字符串。

问题是某些匹配的字符串中包含特殊字符, 例如:

=OEAKPOB|2OEAQPYA0402343|@@EAY632|@@EAY6XF3260| LD93684589|4+EB484K|4+EB481W|4*EBEWRX||=OEAKQJW|VNEAKX74

当我尝试

pat = '|'.join(criteria_filter['ID'])
df_B = detfile_df[detfile_df['ID'].str.contains(pat)]

我得到一个

error: nothing to repeat

现在我想这是由于错误或上面我的两行代码无法处理特殊字符所致。

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以在生成器理解中通过re.escape来转义特殊的正则表达式字符:

import re
pat = '|'.join(re.escape(x) for x in criteria_filter['ID'])