首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DrugBank

DrugBank

作者头像
DrugScience
发布2021-02-04 11:19:32
发布2021-02-04 11:19:32
1.4K0
举报
文章被收录于专栏:DrugScienceDrugScience

官网: web:https://www.drugbank.com/ 简介: DrugBank是一个精选的药品知识库,其产品可在市场上购买,用于精准医学,远程医疗和药物发现。药品信息结构化,统一化。

#### 教程: web : https://dev.drugbank.com/guides/tutorials/index

百度云链接:

代码语言:javascript
复制
链接: https://pan.baidu.com/s/1B33rFxD5X0JMKBMex1xaBg  
密码: 4hr1

认真解析一下 获取根节点的所有tag值,并且作为列名,输出为csv

代码语言:javascript
复制
```

#et将xml作为tree处理,最终转化为csv
import xml.etree.ElementTree as et
import pandas as pd

tree = et.parse('full_database.xml')
root = tree.getroot()
#获取根节点的所有tag值,并且作为列名
ori_li=[]
for x in root:
    for y in i:
        ori_li.append(y.tag)
#元祖出去重复
ori_set=set(ori_li)
dict_ori={}
for i in ori_set:
    dict_ori[i]=[]

#获得字典
for x in root:
    for y in x:
        if dict_ori[y.tag]:
            dict_ori[y.tag].append(y.text)
        else:
            dict_ori[y.tag].append('nothing')

dict_sec={}
for i in dict_ori.keys():
  if len(dict_ori[i]) == 14315:
    dict_sec[i] = dict_ori[i]

df=pd.DataFrame.from_dict(dict_sec)

#去除大多数的无用列名
for  i in df.columns:
    if len(df[i].unique()) < 5:
        df.drop(i, axis=1, level=None, inplace=True, errors='raise')
#重命名列名
for i in df.columns:
    df.rename(columns={i:i.replace('{http://www.drugbank.ca}','')},inplace=True)
#输出为csv
df.to_csv('drugbank.csv',index=False)
```
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FindKey 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档