我正在尝试在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
现在我想这是由于错误或上面我的两行代码无法处理特殊字符所致。
您能帮我解决这个问题吗?
答案 0 :(得分:1)
您可以在生成器理解中通过re.escape
来转义特殊的正则表达式字符:
import re
pat = '|'.join(re.escape(x) for x in criteria_filter['ID'])