我有一個看起來像這樣的數據集:ID Symptoms1 ear, fever2 hearing loss3 hurt ear4 spear wound5 bad hearing 6 earring cut我只想標記出現“耳朵”的記錄。因此,例如,輸出將如下所示:ID Symptoms Ear1 ear, fever 12 hearing loss 03 hurt ear 14 spear wound 05 bad hearing 0 6 earring cut 0我玩過一些代碼但收效甚微:問題:此代碼會提取任何帶有“ear”文本的內容LABS_TAT.loc[:,"Ear"]=np.where(LABS_TAT["Symptoms"].str.contains("ear", case=False),1,0)注意“ear”之后的空格,此代碼不會標記記錄“hurt ear” LABS_TAT.loc[:,"Ear"]=np.where(LABS_TAT["Symptoms"].str.contains("ear ", case=False),1,0)注意“ear”之前的空格,此代碼不會標記記錄“ear, fever” LABS_TAT.loc[:,"Ear"]=np.where(LABS_TAT["Symptoms"].str.contains(" ear", case=False),1,0)我怎樣才能修復我的代碼,以便它用單詞“ear”標記任何記錄?我覺得有一個簡單的答案,但我對 python 還是有點陌生。
2 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
Series.str.contains
與正則表達式模式一起使用:
df['Ear']?=?df['Symptoms'].str.contains(r'(?i)\bear\b').astype(int)
結果:
? ID? ? ? Symptoms? ?Ear
0? ?1? ? ear, fever? ? 1
1? ?2? hearing loss? ? 0
2? ?3? ? ? hurt ear? ? 1
3? ?4? ?spear wound? ? 0
4? ?5? ?bad hearing? ? 0
5? ?6? ?earring cut? ? 0
添加回答
舉報
0/150
提交
取消