python - 挖掘“包含在”条目而不是“等于”的术语
问题描述
我正在做一些数据挖掘。我有一个看起来像这样的数据库(拉出三行):
100324822$10032482$1$PS$BENICAR$奥美沙坦酯$1$口服$UNK$$$Y$$$$021286$$$平板电脑$ 1014687010$10146870$2$SS$BENICAR HCT$氢氯噻嗪\奥美沙坦酯$1$口服$12 25MG 片剂$$$Y$$$$$.5$DF$薄膜包衣片剂$QD 115700162$11570016$5$C$奥美沙坦$奥美沙坦$1$未知$UNK$$$U$U$$$$$$$
我的代码如下所示:
with open('DRUG20Q4.txt') as fileDrug20Q4:
drugTupleList20Q4 = [tuple(map(str, i.split('$'))) for i in fileDrug20Q4]
drug20Q4 = []
for entryDrugPrimaryID20Q4 in drugTupleList20Q4:
drug20Q4.append((entryDrugPrimaryID20Q4[0], entryDrugPrimaryID20Q4[3], entryDrugPrimaryID20Q4[5]))
fileDrug20Q4.close()
drugNameDataFrame20Q4 = pd.DataFrame(drug20Q4, columns = ['PrimaryID', 'Role', 'Drug Name']) drugNameDataFrame20Q4 = pd.DataFrame(drugNameDataFrame20Q4.loc[drugNameDataFrame20Q4['Drug Name'] == 'OLMESARTAN'])
目前,代码只会提取具有确切名称“OLMESARTAN”的条目,我如何捕获所有变体,例如“OLMESARTAN MEDOXOMIL”等?我不能简单地列出所有的品种,因为有无限多的变化,所以我需要一些能捕捉到任何东西的东西,里面有“OLMESARTAN”这个词。
谢谢!
解决方案
您可以使用str.contains来获取您要查找的内容。
这是一个示例(使用我在文档中找到的一些字符串):
import pandas as pd
df = pd.DataFrame()
item = 'Return boolean Series or Index based on whether a given pattern or regex is contained within a string of a Series or Index.'
df['test'] = item.split(' ')
df[df['test'].str.contains('de')]
这输出:
test
4 Index
22 Index.
推荐阅读
- elasticsearch - 未找到“弹性搜索”模块
- ios - 如何修复——当权限处理程序已经在我的 Podfile 中时,IPHONEOS_DEPLOYMENT_TARGET 设置为 8.0?
- reactjs - 在 React Js 中更改 Segment 的图标
- c# - EF Core LINQ GROUPBY 然后选择获取实体的多个属性
- python - 将数组字典转换为单个熊猫数据框
- java - 使用 DocPrintJob (Java) 进行双面打印
- node.js - 执行 npm run deploy 时不断发生错误
- python - 使用 fastapi 初始化乌龟 orm 的问题
- c++ - C++ 并发、协程和作业调度?
- ios - 测试 AuthenticationServices 的接口适配器类