[英]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.