感謝您花時間閱讀我的問題。Python Pandas - 在特定列中搜索兩個數據幀以匹配字符串
我正在開發一個可以實時自定義Web流量監控的系統。系統(在其當前的alpha迭代中)每隔幾分鐘就會有一次.txt的流量轉儲。我會叫它df_webtraffic。這個.txt有幾列,其中一個是網絡流量的url字段。我需要做的是,對於每一行的URL輸入(df_webtraffic.url),掃描另一個df(或系列,我不知道它有多重要,因爲它只是一列)被禁止的網站(我稱之爲黑名單)。黑名單很大(近一百萬條),所以效率非常重要。
我已經閱讀了數十篇論壇帖子,但大多數主題似乎都與找到一個特定的字符串有關,而不是在一個系列中找到匹配。如何掃描一個數據字段中的列並查找其他數據字段或系列中的相應匹配項?
我已經寫了這段代碼:print y[y['URL'].str.contains[(blacklist)]
它看起來可以工作......但它從來沒有完成。它只是處理......和處理......以及處理 - 我期望得到,但系統監視器顯示我的處理器幾乎不會突破python進程的5%,從不超過10%,並且定期處於0%。對於這樣的要求我期望它會消耗大量的CPU。
想法?
德魯
UPDATE:
有一件事我不是清楚的是,在黑名單域並不總是將是一個精確匹配的點擊網址 - 有人可以點擊網址它指向一個域內的子目錄(如www.website.com/subdir/link.html),但是我需要與之對應的黑名單條目只能是www.website.com。因此,我需要查看點擊的URL中的條目是否包含黑名單中的任何條目,即使它沒有明確地匹配它。
感謝您的想法。有一件事我看起來並不清楚,黑名單中的域名並不完全匹配 - 有人可能會點擊指向域中子目錄的URL(例如www.website.com/ subdir/link.html),但是我需要與之對應的黑名單條目只能是www.website.com。有任何建議嗎? –