2017-08-29 28 views
0

我是超級簡單的問題很抱歉,但我不能讓它工作Python的大熊貓類型錯誤:第一個參數必須是字符串或編譯的模式

我清理數據,並要添加一個標誌,如果名字(這是分爲兩列首字母和姓氏)是錯誤的。我建立了多種模式,但現在我正在使用單獨的語句,我可以將所有這些語句合併爲一個嗎?

pattern = "\?" 
match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
incremental['Name_Flag'] = np.where(match, 'Y', '') 

pattern = "tourist" 
    match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
    incremental['Name_Flag'] = np.where(match, 'Y', '') 

這不起作用,因爲第二條語句會覆蓋第一條語句。

pattern = ("tourist","/?") 
     match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
     incremental['Name_Flag'] = np.where(match, 'Y', '') 

我得到了第二個版本的錯誤(這並不奇怪)

TypeError: first argument must be string or compiled pattern. 
+1

我有些困惑。你能添加一些樣本輸入和預期輸出嗎?你是否想要結合正則表達式模式?希望檢查兩種模式?什麼是最終目標問題? – MattR

回答

1

如果你正在試圖尋找這兩個正則表達式patterns-在搜索字符串中都?tourist。您可以使用|運算符。因此,改變pattern

pattern = "tourist|\?" 

這將檢查是否有問號OR如果「tourist`是字符串

中如果你想檢查正則表達式,pythex是一個非常好的地方。我爲你做了一個測試。

+0

完美 - 謝謝 – jeangelj

+0

博士 - 哇 - 謝謝「pythex」是驚人的,希望谷歌會給我這個小時前... – jeangelj

+0

@jeangelj我的榮幸。玩得開心編碼 – MattR

相關問題