鱼C论坛

 找回密码
 立即注册
查看: 1212|回复: 17

[已解决]求问下这个代码怎么写

[复制链接]
发表于 2020-6-10 19:35:37 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
读取家族史DEMO.csv文件,尝试使用正则表达式的方法,找出具有高血压家族史的患者编号。
这里是不是不能发图片呀,我的截图不知道咋发。
可以加QQ或者微信发图 球球了
最佳答案
2020-6-10 22:12:07
本帖最后由 BIO-张磊 于 2020-6-10 22:40 编辑
兩點零晨 发表于 2020-6-10 21:40
谢谢 因为我们老师要求要用正则表达式
感觉你写的挺好的


import pandas as pd
import re

data = pd.read_csv("DEMO.csv",encoding = "GBK",index_col = 0)

def high_blood_pressure(content):
        content = (u'%s'%content).encode('utf-8')
        if len(re.findall(u'高血压'.encode('utf-8'),content)) > 0:
                return True
        else:
                return False

data["高血压"] = data["家族史"].apply(high_blood_pressure)

result = data[data["高血压"] == True].index.to_list()

主要我觉得这个正则表达式真的没有必要啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-10 19:37:36 | 显示全部楼层
……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-10 19:41:20 From FishC Mobile | 显示全部楼层
老八秘制 发表于 2020-6-10 19:37
……

害 真的不知道咋写了 那个文件不截图的话也写不太清
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 20:01:57 | 显示全部楼层
等级不够,没权限发图。
使用图床发图吧。
戳我发图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 20:22:22 From FishC Mobile | 显示全部楼层
sunrise085 发表于 2020-6-10 20:01
等级不够,没权限发图。
使用图床发图吧。
戳我发图

谢谢呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 20:42:38 | 显示全部楼层
可以给一个患者的编号看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 20:45:11 | 显示全部楼层
或者,你上传到一个百度云盘,分享一下链接,我们去看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 20:57:50 From FishC Mobile | 显示全部楼层
BIO-张磊 发表于 2020-6-10 20:45
或者,你上传到一个百度云盘,分享一下链接,我们去看看

好的谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 21:00:53 From FishC Mobile | 显示全部楼层
兩點零晨 发表于 2020-6-10 20:57
好的谢谢!

好像我发什么链接她都说要审核 好久都没审核过呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 21:04:59 From FishC Mobile | 显示全部楼层
兩點零晨 发表于 2020-6-10 20:57
好的谢谢!

csv文件第一行是编号,家族史
第二行是A01,其父于61岁始先后患有“食管癌”(予手术治疗)、“直肠癌伴肝转移”(予手术及介入治疗)、“膀胱癌”(予手术及化疗),具体不详,仍健在。其爷爷患有“胃癌”。其姑姑30年前患有“直肠癌”(予手术及化疗),具体不详,仍健在。否认其他家族病史
第三行A03,父母有“高血压病”,无“乙肝”病史,母亲因“肝癌”去世。4个哥哥均患有“乙肝”,大哥因“淋巴癌”去世。否认其他家族性遗传性及传染性疾病史。
...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 21:07:55 | 显示全部楼层
兩點零晨 发表于 2020-6-10 21:04
csv文件第一行是编号,家族史
第二行是A01,其父于61岁始先后患有“食管癌”(予手术治疗)、“直肠癌伴 ...

所以你就是说要找到 家族史列具体内容中  出现 高血压病 这四个字的患者编号?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 21:10:23 From FishC Mobile | 显示全部楼层
BIO-张磊 发表于 2020-6-10 21:07
所以你就是说要找到 家族史列具体内容中  出现 高血压病 这四个字的患者编号?

对 就是要用正则表达式写 提取前面的编号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 21:27:46 | 显示全部楼层
兩點零晨 发表于 2020-6-10 21:10
对 就是要用正则表达式写 提取前面的编号

import pandas as pd

data = pd.read_csv("DEMO.csv",encoding = "GBK",index_col = 0)

def high_blood_pressure(content):
        if "高血压" in content:
                return True
        else:
                return False

data["高血压"] = data["家族史"].apply(high_blood_pressure)
print(data)

result = data[data["高血压"] == True].index.to_list()
print(result)

我觉得没必要正则表达式啊,你看看这个行不,我根据你以有的信息制作了一份csv文件,文件内容是
编号      家族史
A01       其父于61岁始先....
A03       父母有“高血压病”.....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 21:40:42 From FishC Mobile | 显示全部楼层
BIO-张磊 发表于 2020-6-10 21:27
import pandas as pd

data = pd.read_csv("DEMO.csv",encoding = "GBK",index_col = 0)

谢谢 因为我们老师要求要用正则表达式
感觉你写的挺好的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 22:12:07 | 显示全部楼层    本楼为最佳答案   
本帖最后由 BIO-张磊 于 2020-6-10 22:40 编辑
兩點零晨 发表于 2020-6-10 21:40
谢谢 因为我们老师要求要用正则表达式
感觉你写的挺好的


import pandas as pd
import re

data = pd.read_csv("DEMO.csv",encoding = "GBK",index_col = 0)

def high_blood_pressure(content):
        content = (u'%s'%content).encode('utf-8')
        if len(re.findall(u'高血压'.encode('utf-8'),content)) > 0:
                return True
        else:
                return False

data["高血压"] = data["家族史"].apply(high_blood_pressure)

result = data[data["高血压"] == True].index.to_list()

主要我觉得这个正则表达式真的没有必要啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 22:29:40 From FishC Mobile | 显示全部楼层
BIO-张磊 发表于 2020-6-10 22:12
import pandas as pd
import re


因为在讲正则表达式,老师估计是为了让我们做题目就硬要塞正则表达式的吧 谢谢大佬啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 22:35:47 | 显示全部楼层
兩點零晨 发表于 2020-6-10 22:29
因为在讲正则表达式,老师估计是为了让我们做题目就硬要塞正则表达式的吧 谢谢大佬啦{:10_254: ...

要是我这个代码,可以,请采纳噢。
我的思想就是把中文和要找的都用u转化为unicode编码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-10 22:43:12 From FishC Mobile | 显示全部楼层
BIO-张磊 发表于 2020-6-10 22:35
要是我这个代码,可以,请采纳噢。
我的思想就是把中文和要找的都用u转化为unicode编码

好滴
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 18:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表