2015-09-01 67 views
1

我有以下的數據幀熊貓數據幀過濾器相匹配的

>>> df = pd.DataFrame(['as,df','as.df']) 
>>> df 
     0 
0 as,df 
1 as.df 

我想使用串除外情況下完全匹配來過濾上述數據幀。我嘗試以下方法,但它不能者區分.,

之間

>>> df[0].str.match('^As.df+$', case=False) 
0  True 
1  True 
Name: 0, dtype: bool 
能否請您解決此問題的幫助。

回答

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在自己添加一些字符之前,確保沒有意外的圓點,方括號或其他特殊字符使其被搜索字符串。

+0

感謝您的回答,它有助於部分。但是我無法控制要搜索的字符串,所以我不能手動編輯字符串,除了在字符串的開始和結尾添加正則表達式字符。有時搜索字符串可能是42.1.1.p4或42,1,1.P4等。爲了遵循您的建議,我必須首先通過替換來編輯字符串。在\的每一個字符串中。 – user26249

+0

@ user26249更新了答案。在添加'^','+','$''之前使用're.escape'等 –

+0

謝謝。這回答了我的問題。 – user26249