2017-05-15 59 views
-2

我很努力地知道我是否得到了我的RegEx語法來執行我真正希望它執行的操作,並且不知道如何在Python特定方式。熊貓和正則表達式 - 校對或校對 - 幫助軟件請求

有人可以對此進行校對或幫助我找到一個自我校對的位置,這是否適合顯示Pandas DataFrame的行,其中「名稱」列下的單元格的值包含不在英文字母表中的字符,數字,&各種常見的標點符號,還是我過/反斜線的一些字符?

(我的猜測是,我需要反斜槓反斜槓和方括號內。)

(注:我知道源數據將永遠不會在此列多行單元格的值)

filtereddf = df[~df['Name'].str.match(r'^[a-zA-Z\d_\s.&+-,[email protected]#$%^*();\\/|<>"\'?=:\[\]]+$')] 

此外,任何niftier技巧的「各種標點符號」,同時確保通常被認爲是「字母」的東西,只有英語26 az & AZ是允許的?

UPDATE:

我得到了「正則表達式的Python解釋器語法」的建議,我需要在評論自我校對 - 應該早就想過要問的,他們作爲一種替代,而不是隻要求校對幫幫我。起初對於措辭不良的問題抱歉,更新。

+4

你考慮*測試它*?如果它只是您要檢查的正則表達式,請使用例如https://regex101.com/ – jonrsharpe

+0

@jonrsharpe,謝謝 - 右上角的解釋正是我自己找不到的。我通過它瞭解到我實際上需要逃避「+」和「 - 」等......這太棒了!我已經更新了這個問題,以便這可以作爲答案 - 如果你想讓這個答案,我會接受它。 –

+0

您應該刪除問題,校對不在主題上。 – jonrsharpe

回答

1

如果你要搜索非ASCII字符,試試這個正則表達式:

[^\x00-\x7F] 
在熊貓

df = df[df['Name'].str.contains('[^\x00-\x7F]')] 
+0

謝謝,但ASCII包含帶有口音的字符,我幫助通過錯誤數據分類的人認爲「有問題」。 (她正在尋找任何與英語「外來」的東西。) –

+1

@k ..,不,它不包括'7F'(十進制127)以上的字符。即它不包括帶有口音的字符 – MaxU

+0

Oooooh。好的,那麼,謝謝! –