建设监督网站阜城网站建设代理
news/
2025/10/1 14:19:34/
文章来源:
建设监督网站,阜城网站建设代理,做网站充值系统,刚做的网站怎么在百度上能搜到1.筛选需求的报告id 基于REAC14Q4文件,筛选出需求报告的id,该文件格式如下#xff0c;其中pt字段描述了患者在事件中所有的不良信息#xff0c;注意此处一个报告id可以对应复数条信息。 primaryid$caseid$pt$drug_rec_act 初步统计约有4500种不良反应#xff0c;总计60W条数…1.筛选需求的报告id 基于REAC14Q4文件,筛选出需求报告的id,该文件格式如下其中pt字段描述了患者在事件中所有的不良信息注意此处一个报告id可以对应复数条信息。 primaryid$caseid$pt$drug_rec_act 初步统计约有4500种不良反应总计60W条数据其中绝大多数不良反应都是个例由于当前网络暂时需求是预测常规副作用这里取出现频率前100的症状作为预测目标最后获取349252条数据约占原数据集的55%对应134954项报告约占原报告数64%
删选原则 取出现频率最高的pt反应前100位筛选包含这些pt的报告号将这些报告号对应的其他非高频症状统一变更为rare symptoms字段然后去除重复项。最后保存id文件以及涉及的pt字段文件。ps:去除重复项我是用excel实现的这个只需要导入生成的basedata.xlsx然后选择去除重复项就行
df pd.read_excel(rE:\xml数据处理\data\exceldata\REAC14Q4.xlsx)
pt_counts df[pt].value_counts()
# 获取前100pt
top_50_pt pt_counts.head(100).index.tolist()
with open(pt_data.txt, w) as file:for id in top_50_pt:file.write(str(id) \n)
# 筛选出具有前50高频率的pt对应的primaryid
get_id df.loc[df[pt].isin(top_50_pt), primaryid].unique()
# 将primaryid写入文件
with open(getid.txt, w) as file:for id in get_id:file.write(str(id) \n)# 将非前50高的pt数据更改为Rare symptoms
df.loc[~df[pt].isin(top_50_pt), pt] Rare symptoms
# 筛选出具有前50高频率的pt对应的所有条目
filtered_data df[df[primaryid].isin(get_id)]
# 将筛选后的数据输出到Excel文件
filtered_data.to_excel(basedata.xlsx, indexFalse)
2.基于筛选出的id初步筛选7个txt文件的 定义了一个函数来完成该功能输入是getid.txt路径以及需要处理的文件路径
def clean_txt(path_getid:str,path_txt:str):with open(path_getid, r) as file:primaryid_list [line.strip() for line in file]count 0with open(path_txt, r) as file:first_line file.readline().strip()filtered_data pd.DataFrame(columnsfirst_line.split($))for line in file:count 1if count%1000 0 : print(count)data line.strip().split($)data [item.strip() for item in data]if data[0] in primaryid_list:filtered_data.loc[len(filtered_data)] data[:25]filtered_data.to_excel(data_cleaned.xlsx, indexFalse, headerTrue) 不过越到后面处理越慢实验了几次发现是DataFrame格式产生了不少的开销这专用list存储数据最后再转换成DataFrame格式然后加上分块处理清洗速度有了质的飞跃当然list转换成DataFrame也需要一些时间(大概1-2分钟10W条数据)可以考虑使用numpy或许会更快些。 def clean_txt2(path_getid: str, path_txt: str):# 读取getid.txt文件获取需要筛选的primaryid列表with open(path_getid, r) as file:primaryid_list [line.strip() for line in file]count 0chunksize 20000with open(path_txt, r) as file:first_line file.readline().strip()headers first_line.split($)filtered_data []while True:chunk file.readlines(chunksize)if not chunk:breakfor line in chunk:count 1if count % 1000 0:print(count)data line.strip().split($)data [item.strip() for item in data] # 移除换行符if data[0] in primaryid_list:filtered_data.append(data[:25])#list转DataFramefiltered_df pd.DataFrame(filtered_data, columnsheaders)filtered_df.to_excel(data_cleaned.xlsx, indexFalse, headerTrue) 明天继续 ps:
数据集见附件资源或下方网盘链接
链接https://pan.baidu.com/s/1zJeFS48DvZydHk1SfuIQHg?pwd6666 提取码6666
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923925.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!