根據檢查結果、醫生的臨牀經驗得出疾病
疾病數據
disease_data.csv
建議值用“”引起來。避免中間有,號造成誤識別
疾病
"乾眼"
"右膝髕上囊及關節腔少量積液"
創建節點
import logging
import pandas as pd
from utils.neo4j_provider import driver
logging.root.setLevel(logging.INFO)
# 並生成 CQL
def generate_cql() -> str:
# cql = """
# CREATE (disease1:Disease {name: "右膝髕上囊及關節腔少量積液"}),
# (disease2:Disease {name: "乾眼"}),
# """
df = pd.read_csv('disease_data.csv')
symptoms = []
for each in df['疾病']:
symptoms.extend(each.split(',')) # 按,號分割成數組,並將每行數據到一個隊列裏面
symptoms = set(symptoms) # 去除重複項
# 拼接 CQL
cql = ""
for idx, item in enumerate(symptoms):
cql += """(disease%s:Disease {name: "%s"}),\r\n""" \
% (idx, item)
return "CREATE %s" % (cql.rstrip(",\r\n")) # 刪除最後一個節點的 逗號
# 執行寫的命令
def execute_write(cql):
with driver.session() as session:
session.execute_write(execute_cql, cql)
driver.close()
# 執行 CQL 語句
def execute_cql(tx, cql):
tx.run(cql)
# 清除 Disease 標籤數據
def clear_data():
cql = "MATCH (n:Disease) DETACH DELETE n"
execute_write(cql)
if __name__ == "__main__":
clear_data()
cql = generate_cql()
print(cql)
execute_write(cql)