我有以下数据框
>>> df = pd.DataFrame(['as,df','as.df'])
>>> df
0
0 as,df
1 as.df
除了大小写,我想使用完全匹配的字符串过滤dataFrame以上。我尝试了以下方式,但无法区分.
和,
>>> df[0].str.match('^As.df+$', case=False)
0 True
1 True
Name: 0, dtype: bool
您能帮忙解决这个问题吗?
答案 0 :(得分:1)
使用反斜杠转义 dot
:'^As\.df+$'
。
>> df[0].str.match('^as\.df$', case=False)
0 True
1 False
Name: 0, dtype: bool
要查看在正则表达式中何时(及如何)转义特殊字符,请参阅此问题:What special characters must be escaped in regular expressions?
如果正则表达式不在您的控制之下,那么您可以在自己添加一些字符之前使用re.escape
,以确保没有意外的点,方括号或其他特殊字符使其成为正在搜索的字符串。