簡體   English   中英

從列表中在 Pandas Dataframe 中搜索精確的整個單詞

[英]Searching for exact whole words in Pandas Dataframe from a List

我知道這個問題已經被問了一百萬次,但我仍然面臨着挑戰。 我有一個我想在 Pandas 數據框中搜索的完整單詞的列表。

Counties_List = ['MOMBAS','KWALE','LAMU']

df2 = df1[df1['County/ Sub-County'].str.contains('|'.join(Counties_List))]

上面的代碼部分有效,因為它帶來了我不需要的其他行,例如 LAMU-NORTH 等。所以我對列表中的一項進行了正則表達式搜索,例如僅 LAMU,並且代碼按我的預期工作。 如何映射其余的所有列表項,以便它們可以出現在 df2 中。 我想要一個包含我在列表中包含的完整單詞的數據框。

df2[df2['County/ Sub-County'].str.contains('^LAMU$')]

您似乎希望Countey/ Sub-County列中Countries_List中的項目完全匹配。 您可以使用

 df2 = df1[df1['County/ Sub-County'].str.contains(r'^(?:{})$'.format('|'.join(Counties_List)))]
 df2 = df1[df1['County/ Sub-County'].str.contains(rf'^(?:{"|".join(Counties_List)})$')] # Python 3.7+

^之前添加(?i)以啟用不區分大小寫的匹配。

或者,如果您需要固定的字符串比較,只需使用isin

df2 = df1[df1['County/ Sub-County'].isin(Counties_List)]

Counties_List = ['MOMBASA' ,'KWALE' ,'LAMU']列表產生的正則表達式將類似於^(?:MOMBASA|KWALE|LAMU)$ 非捕獲組(?:...)將確保將錨點應用於組中的所有備選方案。

請參閱正則表達式演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM