使用另一个datafram中的文本字符串从PD dataframe提取值

2024-04-20 08:12:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧:

你知道吗 条款:

  Drug                   Treatment      
  Ibuprofen 800mg        Hip Replacement Surgery
  Tylenol   AM           Mild Dislocation
  Advil                  Fractured Tibia
  Quinone                Fever
  Penicillin 250mg       Histerectomy
                         Surgical removal of bunion
                         Therapy
                         Bunion
data:
    Records  Physician Visit 1                        Physician Visit 2
    604     Take 2 tablets of advil & 3 caps of pen   Stop pen but cont. with advil
            250mg twice daily                         as needed for the fracture                                
    210     2 tabs of Tyl 3x daily for 5 days         nan
    515     nan                                       surgery scheduled for 01/01/2017
    019     Call my office if bunion pain persist     nan
            after 3 days

我的愿望是使用术语表中的术语列表,从一个有大量医生注释的表中提取更多的药物和治疗信息。输出应该是这样的:

Records Visit1Drugs  Visit1Treatment  Visit2Drug   Visit2Treatment  Date
604     Advil,       nan              Advil        Fracture         nan
        Penicillin 
        250mg

210     Tylenol AM  nan               nan          nan              nan
515     nan         nan               nan          surgery          01/01/2017
019     nan         bunion            nan          nan              nan

我已经做了几次尝试来实现这一点,但每次尝试都会把代码搞糟。目前,这是唯一的功能代码,它只能提取整个记录说明/访问…这不是我希望实现的

drugs = terms['Drug'].tolist()
drugs = [x for x in drugs if str(x) != 'nan']
drugs = list(set(drugs))
visit = data['physician visit 1'].tolist()
visit = [x for x in visit if str(x) != 'nan']
visit = list(set(visit))

visitDrugList = []
for i in range(0, len(drugs)):
    search = ".*" + drugs[i]
    visitDrug = re.compile(search)
    visitDrugs = list(filter(visitDrug.match, visit))
    i+=1
    if visitDrugs:
        #print (search)
        visitDrugList.append(visitDrugs)
visitDrugList

我可以得到一份药物/就诊的清单,如果修改,还有一份治疗/就诊的清单。如何使用提取的药物/治疗列表创建一个新表(如上所示)?我知道这不是Python,有更复杂的方法来完成这一点-我正在寻找一个人来看看我的问题,并指出我在正确的方向。提前谢谢大家!你知道吗


Tags: ofinforsearchifvisitnanlist