0
我在嘗試匹配兩個數據幀中的兩個特定字時遇到了一點性能問題。我需要爲包含一個詞,否則0。我寫的外觀如下功能中的每一行返回一個1:在兩個數據幀之間高效應用正則表達式
def matchWords(row):
row = row[0].upper()
for x in df_X.Names:
if re.search("\\b" + x + "\\b", row):
return 1
return 0
這個功能是從一個叫拉姆達,雖然它正常工作,它需要相當長的時間跑步。我已經使用多線程來努力提高速度,但我希望它更快。有沒有辦法可能預編譯df_X.Names
還是有人有另一個提示,以獲得更快/更高效?
在此先感謝您的幫助!
不知道,你有'df_X.Names',但它可以用來預習像'名1正則表達式| Name2'等,如're.compile(r'\ b({})\ b'.format(「|」.join(df_X.Names)))'然後使用這個正則表達式來搜索一行。 –
這大致是我想要做的,但是這樣我得到一個unicodeEncodeError,因爲'df_X'數據框包含許多不同語言(希臘語,中文,英語等)的條目 – Kizzle
您的Python版本是什麼? 2.X?那麼你需要在任何地方都使用'u'''''''。 –