数据匹配python

该博客介绍了使用Python进行数据匹配的方法,特别是在CT分类中应用正则表达式进行文本分析。通过定义多个关键模式,对不同类型的检查进行区分,如DR、CT、MRI等,并将匹配结果保存到不同的CSV文件中。
摘要由CSDN通过智能技术生成

在这里插入图片描述
import re
import pandas as pd
def re_match(key_word, raw_string):
try:
aaa = re.match(key_word, raw_string, flags=0)
if str(aaa)==‘None’:
flag = 0
else:
flag = 1
return flag
except Exception:
return 0

#对CT分类
file1=pd.read_csv(‘头.csv’,names=[“value”],encoding=‘utf-8’)

key1=".?(DR)."
no1=".?(DR升级CT)."
key2=".?(CT|平扫|断层|ct|正位片|放射2|侧斜?位|张口位|正侧?位|正恻位|(三|四)位片|斜位|透视|开口位|正侧双斜片|屈片位|瓦氏|柯瓦?氏|X光摄片|鼻窦拍片|瓦特氏位|体检加项C|C.{0,5}?(头))."
no2=".?(核磁|磁共振|MR|DR|TCD)."
key3=".?(核磁|MR|磁共振|头部血管)."
no3=".?(MRA)"
key4=".
?(彩超|彩色.?多(普|谱)勒)."
key5=".?(B超)."
key6=".?(超声|多普勒|经颅多谱勒|颅内多谱勒)."
no6=".?(彩色|彩超|B超|E超)."
key7=".?(E超)."
key8=".?(淋巴)."
key9=".?(热成?像|TMT|热代谢|TTM|MTD|远红外)."
key10=’.?(体检加项.?H).
key11=’.
?(MRA).
no11=’.
?(电耳镜).
key12=’.
?(耳鼻喉).
no12=’.
?(镜|喉镜).
key13=’.
?(头部弥散加权成像|DM).
key14=’.
?(头颅检查).
no14=".
?(核磁|MR|磁共振|头部血管)."
key15=’.
?(电耳镜).
key16=’.
?(头部A).*’

jzx=[]

noMatch=[]

key9=".?(评测|评估|测评|检测|分析|风险)."

for l in file1[‘value’]:
flag=“noMatch”
if re_match(key1,l) and
re_match(no1,l)==0:
jzx.append(l+"&&&头颅(DR)")
flag=“1”

if (re_match(key2,l) and \
re_match(no2,l)==0) or \
re_match('.*?(DR升级CT).*',l):
    jzx.append(l+"&&&头颅(CT)")
    flag="1"
    
    
if re_match(key3,l) and \
re_match(no3,l)==0:
    jzx.append(l+"&&&头颅(MRI)")
    flag="1"
    
    
if re_match(key4,l):
    jzx.append(l+"&&&头颅(彩超)")        
    flag="1"
    
    
if re_match(key5,l):
    jzx.append(l+"&&&头颅(B超)")               
    flag="1"
    
    
if re_match(key6,l) and \
re_match(no6,l)==0:
    jzx.append(l+"&&&头颅(超声)") 
    flag="1"
    
    
if re_match(key7,l):
    jzx.append(l+"&&&头颅(E超)")  
    flag="1"
    
    
if re_match(key8,l):
    jzx.append(l+"&&&头颅(淋巴结检查)")                
    flag="1"
    
   
if re_match(key9,l):
    jzx.append(l+"&&&头颅(热成像)")     
    flag="1"
    
if re_match(key10,l):
    jzx.append(l+"&&&头颅(体检加项H)")     
    flag="1" 
    
if re_match(key11,l) and \
re_match(no11,l)==0:
    jzx.append(l+"&&&头颅(MRA)")     
    flag="1"   
   
if re_match(key12,l)==1 and \
re_match(no12,l) ==0:
    jzx.append(l+"&&&头颅(常规检查)")     
    flag="1"
if re_match(key13,l):
    jzx.append(l+"&&&头颅(DM)")     
    flag="1"  
if re_match(key14,l) and \
re_match(no14,l)==0:
    jzx.append(l+"&&&头颅(常规检查)")
    flag="1" 
if re_match(key15,l):
    jzx.append(l+"&&&头颅(电耳镜)")  
    jzx.append(l+"&&&头颅(常规检查)")  
    flag="1"        
if re_match(key16,l):
    jzx.append(l+"&&头部")
    jzx.append(l+"&&头部(AAA)")
    flag="1"
    
if flag=="noMatch":
    noMatch.append(l)
    print(l)

df2 = pd.DataFrame(data = jzx)
df2.to_csv(‘头颅ok.csv’)
df3 = pd.DataFrame(data = noMatch)
df3.to_csv(‘头颅剩余.csv’)

#细分部位

在这里插入图片描述


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值