我有一个看起来像这样的数据集: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
提交
取消