2038 lines
59 KiB
Plaintext
2038 lines
59 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 基础知识"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 正则表达式分割文本"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import openpyxl\n",
|
||
"import re\n",
|
||
"\n",
|
||
"file_name = 'data/药食材性味归经.xlsx'\n",
|
||
"wb = openpyxl.load_workbook(file_name)\n",
|
||
"sheet = wb.active\n",
|
||
"#sheets = wb.sheetnames\n",
|
||
"\n",
|
||
"list1 = []\n",
|
||
"dict1 = {}\n",
|
||
"mo =r'[。入归].+经$'\n",
|
||
"mo1 = r'[二]'\n",
|
||
"mo2 = r'[,、;]'\n",
|
||
"for n in range(2,sheet.max_row):\n",
|
||
" name = sheet.cell(n,1).value\n",
|
||
" content = re.findall(mo,sheet.cell(n,2).value)\n",
|
||
" if len(content) > 0:\n",
|
||
" l = len(content[0])\n",
|
||
" gj = re.sub(mo1, '', content[0][1:l-1]) \n",
|
||
" list_gj = re.split(mo2,gj)\n",
|
||
" dict1[sheet.cell(n,1).value ] = list_gj\n",
|
||
" #dict1['guijing'] = list_gj\n",
|
||
" \n",
|
||
"filename = './data/药食材归经.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl,ensure_ascii=False) \n",
|
||
"\n",
|
||
"#print(list1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"\n",
|
||
"s = '消化不良、胃下垂、急性胃炎、慢性胃炎、萎缩性胃炎、神经性呕吐、胆囊炎、胆石症、胆道蛔虫症、胸胁痛等'\n",
|
||
"ss = '健中和胃,消食止呕,理气疏郁,清热利胆。'\n",
|
||
"mo = '等$'\n",
|
||
"mo2 = r'[,、;。]'\n",
|
||
"s1 = re.sub(mo, '', s) \n",
|
||
"list1 = re.split(mo2,s1)\n",
|
||
"if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
"print(list1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"t = '5小时10分48秒'\n",
|
||
"m = re.match(r'(.*)小时(.*)分(.*)秒', t)\n",
|
||
"m.groups()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"t = '10分48秒'\n",
|
||
"list1 = []\n",
|
||
"if '小时' in t and '分' in t:\n",
|
||
" m = re.match(r'(.*)小时(.*)分(.*)秒', t)\n",
|
||
" list1 = [m[1],m[2],m[3]]\n",
|
||
"elif '小时' in t:\n",
|
||
" m = re.match(r'(.*)小时(.*)秒', t)\n",
|
||
" list1 = [m[1],0,m[2]]\n",
|
||
"elif '分' in t:\n",
|
||
" m = re.match(r'(.*)分(.*)秒', t)\n",
|
||
" list1 = [0,m[1],m[2]]\n",
|
||
"print(list1)\n",
|
||
"#m.group()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"\n",
|
||
"s = '2022-09-28-《气郁组》-视频学习详情_155229'\n",
|
||
"m = re.findall(r'《(.+)》',s)\n",
|
||
"print(m)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 日期计算"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import time\n",
|
||
"\n",
|
||
"birth = '1989-01-25'\n",
|
||
"t_birth = time.strptime(birth,'%Y-%m-%d')\n",
|
||
"days = (time.time() -time.mktime(t_birth))//(365*24*60*60)\n",
|
||
"print(int(days))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 字符串转换"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import binascii\n",
|
||
"\n",
|
||
"gbs = 'D4C0CDAF'\n",
|
||
"bs = binascii.a2b_hex(gbs)\n",
|
||
"print('bs', bs)\n",
|
||
"print('decode-bs:', bs.decode('gbk'))\n",
|
||
"\n",
|
||
"s = '马立亚'\n",
|
||
"gbcode = s.encode('gbk') # 先转成 bytes格式\n",
|
||
"print('gbcode:', gbcode)\n",
|
||
"gbs = \"\".join([hex(ch)[2:] for ch in gbcode]) #\n",
|
||
"print('gbs:', gbs)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 数据组合处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import itertools\n",
|
||
"\n",
|
||
"list1 = ['气虚','阳虚','阴虚','痰湿','湿热','血瘀','气郁','特禀']\n",
|
||
"list2 = [0,1,2,3,4,5,6,7]\n",
|
||
"\n",
|
||
"result=itertools.combinations(list1,7)\n",
|
||
"print(len(list(result)))\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"## 医药体测"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 药膳归经明细文件生成"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/药膳210927.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"filename = 'data/药食材归经.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict2 = json.load(fl)\n",
|
||
"k_zy = dict2.keys()\n",
|
||
"dict3 = {}\n",
|
||
"list1 = []\n",
|
||
"for item in dict1:\n",
|
||
" print(item['name'])\n",
|
||
" list1 = []\n",
|
||
" #print(i,item['zy'])\n",
|
||
" for m_zy in item['zy']:\n",
|
||
" if m_zy in k_zy:\n",
|
||
" dict4 = {}\n",
|
||
" print(m_zy,dict2[m_zy])\n",
|
||
" dict4[m_zy] = dict2[m_zy]\n",
|
||
" list1.append(dict4)\n",
|
||
" dict3[item['name']] = list1\n",
|
||
"filename = './data/药膳药食材.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict3, fl,ensure_ascii=False) \n",
|
||
" \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 药膳归经权重生成"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import openpyxl\n",
|
||
"import os,sys,shutil\n",
|
||
"\n",
|
||
"filename = './data/药膳药食材.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"list1 = []\n",
|
||
"for k, v in dict1.items():\n",
|
||
" if len(v) > 0 :\n",
|
||
" dict2 = {}\n",
|
||
" #print(k,v)\n",
|
||
" ys_name = k\n",
|
||
" dict2.setdefault(ys_name,{})\n",
|
||
" for item in v:\n",
|
||
" for k1, v1 in item.items():\n",
|
||
" for item1 in v1:\n",
|
||
" dict2[ys_name].setdefault(item1,0)\n",
|
||
" dict2[ys_name][item1] += 1\n",
|
||
" list1.append(dict2) \n",
|
||
" \n",
|
||
"dict_qz = {}\n",
|
||
"for item in list1:\n",
|
||
" for k, v in item.items():\n",
|
||
" qz = sorted(v.items(), key = lambda kv:(kv[1], kv[0]),reverse=True)\n",
|
||
" dict_qz[k] = qz\n",
|
||
"#print(dict_qz)\n",
|
||
"qz_key = dict_qz.keys()\n",
|
||
"filename = 'data/药膳210927.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"#print(dict1)\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"sheet['A1'] = '药膳名称'\n",
|
||
"sheet['B1'] = '来源'\n",
|
||
"sheet['C1'] = '配方'\n",
|
||
"sheet['D1'] = '做法'\n",
|
||
"sheet['E1'] = '功效'\n",
|
||
"sheet['F1'] = '中药成分'\n",
|
||
"sheet['G1'] = '归经权重'\n",
|
||
"\n",
|
||
"i =2\n",
|
||
"for item in dict1:\n",
|
||
" sheet[f'A{i}'] = item['name']\n",
|
||
" sheet[f'B{i}'] = item['source']\n",
|
||
" sheet[f'C{i}'] = item['pf']\n",
|
||
" sheet[f'D{i}'] = item['zf']\n",
|
||
" sheet[f'E{i}'] = item['gx']\n",
|
||
" sheet[f'F{i}'] = ','.join(item['zy'])\n",
|
||
" if item['name'] in qz_key:\n",
|
||
" s = ''\n",
|
||
" for m_gj in dict_qz[item['name']]:\n",
|
||
" s = s+ m_gj[0] +'('+str(m_gj[1])+')'\n",
|
||
" sheet[f'G{i}'] = s\n",
|
||
" else:\n",
|
||
" sheet[f'G{i}'] = '暂无归经'\n",
|
||
" i += 1\n",
|
||
"\n",
|
||
"wb.save('data/test4.xlsx') \n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 药膳文件处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"#### 药膳文件预处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/286种药膳常用中药功能表.txt'\n",
|
||
"with open(filename, \"r\", encoding='utf-8') as f: \n",
|
||
" data = f.readlines()\n",
|
||
"dict1 = {}\n",
|
||
"for i in range(0,int(len(data)/7)) : \n",
|
||
" s = data[i*7].strip()\n",
|
||
" bh = s.split('.')[0]\n",
|
||
" name = s.split('.')[1].split('(')[0]\n",
|
||
" #print(bh,name)\n",
|
||
" id = str(i+1)\n",
|
||
" dict1.setdefault(id,{})\n",
|
||
" dict1[id]['name'] = name\n",
|
||
" for n in range(1,7):\n",
|
||
" ss = data[i*7+n].strip()\n",
|
||
" p = re.compile(r'【(.*?)】')\n",
|
||
" item = re.findall(p,ss)[0]\n",
|
||
" content = ss.split('】')[1]\n",
|
||
" dict1[id][item] = content\n",
|
||
"filename = 'data/286种药膳常用中药功能表.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(dict1, fl, ensure_ascii=False)\n",
|
||
"print('ok')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"#### 性味归经分解"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 164,
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2024-03-12T06:17:21.817297Z",
|
||
"iopub.status.busy": "2024-03-12T06:17:21.816466Z",
|
||
"iopub.status.idle": "2024-03-12T06:17:21.858558Z",
|
||
"shell.execute_reply": "2024-03-12T06:17:21.857796Z",
|
||
"shell.execute_reply.started": "2024-03-12T06:17:21.817218Z"
|
||
},
|
||
"tags": []
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"ok\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import re\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/286种药膳常用中药功能表.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"p = re.compile(r'[入归](.*?)经')\n",
|
||
"for k, v in dict1.items():\n",
|
||
" if '性味归经' in v.keys():\n",
|
||
" s = v['性味归经']\n",
|
||
" item = re.search(p,s)\n",
|
||
" if item is not None:\n",
|
||
" ss = item.group()\n",
|
||
" sss = re.sub(ss,'',s)\n",
|
||
" \n",
|
||
" p1 = r'[;:、,。:]+。'\n",
|
||
" ssss = re.sub(p1,'。',sss)\n",
|
||
" #print(k,ss,ssss)\n",
|
||
" dict1[k]['归经'] = ss\n",
|
||
" dict1[k]['性味'] = ssss\n",
|
||
" else:\n",
|
||
" dict1[k]['归经'] = s\n",
|
||
" \n",
|
||
"filename = 'data/286种药膳常用中药功能表1.json'\n",
|
||
"with open(filename, 'w') as fl:\n",
|
||
" json.dump(dict1, fl, ensure_ascii=False)\n",
|
||
"print('ok') \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 163,
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2024-03-12T06:16:55.349824Z",
|
||
"iopub.status.busy": "2024-03-12T06:16:55.349544Z",
|
||
"iopub.status.idle": "2024-03-12T06:16:55.378755Z",
|
||
"shell.execute_reply": "2024-03-12T06:16:55.376398Z",
|
||
"shell.execute_reply.started": "2024-03-12T06:16:55.349799Z"
|
||
},
|
||
"tags": []
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"1 性温,味甘、苦。\n",
|
||
"2 性平,味甘。\n",
|
||
"3 性凉,味甘、微苦。\n",
|
||
"4 性平,味甘、微苦。\n",
|
||
"5 性温,味甘。\n",
|
||
"6 性温,味苦、甘。\n",
|
||
"7 性平,味甘。\n",
|
||
"8 性温、味甘。\n",
|
||
"9 性平,味甘。\n",
|
||
"10 性寒、味苦。\n",
|
||
"11 味甘、苦,性寒。\n",
|
||
"12 性微温,味甘。\n",
|
||
"13 性温,味甘。\n",
|
||
"14 性平,味甘。\n",
|
||
"15 性温,味甘、辛。\n",
|
||
"16 性微温、味甘。\n",
|
||
"17 性凉,味苦、酸。\n",
|
||
"18 性温,味苦、甘、涩。\n",
|
||
"19 性平、味甘。\n",
|
||
"20 性温、味甘。\n",
|
||
"21 性凉,味甘、苦。\n",
|
||
"22 性寒,味甘、苦。\n",
|
||
"23 性寒,味甘、苦。\n",
|
||
"24 性平,味甘。\n",
|
||
"25 性平,味甘、微苦。\n",
|
||
"26 性平、味甘。\n",
|
||
"27 性平,味甘。\n",
|
||
"28 性平、味甘。\n",
|
||
"29 性微寒,味甘。\n",
|
||
"30 味甘、性平。\n",
|
||
"31 性寒、味甘。\n",
|
||
"32 性平,味苦、甘。\n",
|
||
"33 性寒,味甘、酸。\n",
|
||
"34 性寒,味甘。\n",
|
||
"35 性平,味咸。\n",
|
||
"36 性温,味甘、咸。\n",
|
||
"37 性平,味甘、咸。\n",
|
||
"38 性温,味甘。\n",
|
||
"39 性温、味甘。\n",
|
||
"40 性温,味辛、甘。\n",
|
||
"41 性温、味辛、有小毒。\n",
|
||
"42 性温,味辛。\n",
|
||
"43 性温、味辛。\n",
|
||
"44 味甘、咸,性温。\n",
|
||
"45 性温、味甘。\n",
|
||
"46 性温,味甘、咸。\n",
|
||
"47 性平、味咸。\n",
|
||
"48 性平,味辛、甘。\n",
|
||
"49 性温,味甘、微辛。\n",
|
||
"50 性微温,味苦、辛。\n",
|
||
"51 性温,味辛、甘。\n",
|
||
"52 味辛、苦,性温。\n",
|
||
"53 性温,味辛、甘。\n",
|
||
"54 性温、味辛。\n",
|
||
"55 性温、味辛。\n",
|
||
"56 性温、味辛。\n",
|
||
"57 性温、味辛。\n",
|
||
"58 味辛、性温。\n",
|
||
"59 性温,味辛、甘。\n",
|
||
"60 性温、味辛。\n",
|
||
"61 性温,味辛、苦。\n",
|
||
"62 性温,味甘、苦。\n",
|
||
"63 性温,味辛。\n",
|
||
"64 性温、味辛。\n",
|
||
"65 性温,味辛。\n",
|
||
"66 性凉、味辛。\n",
|
||
"67 性平,味辛。\n",
|
||
"68 性寒,味甘、咸。\n",
|
||
"69 性寒,味甘、苦。\n",
|
||
"70 性微寒,味甘、苦。\n",
|
||
"71 性微寒、味苦。\n",
|
||
"72 性凉,味甘、辛、微苦。\n",
|
||
"73 性凉,味甘。\n",
|
||
"74 性寒、味苦。\n",
|
||
"75 性寒,味辛。\n",
|
||
"76 性平,味苦。\n",
|
||
"77 性寒,味甘、辛。\n",
|
||
"78 性寒,味苦、甘。\n",
|
||
"79 性寒、味甘。\n",
|
||
"80 性凉,味甘、苦、酸。\n",
|
||
"81 性寒,味甘、淡。\n",
|
||
"82 性寒,味甘。\n",
|
||
"83 性寒、味苦。\n",
|
||
"84 性寒、味苦。\n",
|
||
"85 性寒,味苦、辛。\n",
|
||
"86 性凉,味甘、苦。\n",
|
||
"87 性凉,味苦。\n",
|
||
"88 性微寒,味苦。\n",
|
||
"89 性寒、味甘。\n",
|
||
"90 性寒,味苦。\n",
|
||
"91 性寒、味苦。\n",
|
||
"92 性寒,味苦、甘。\n",
|
||
"93 性微寒,味苦、辛。\n",
|
||
"94 性寒、味辛。\n",
|
||
"95 味甘、酸,性寒。\n",
|
||
"96 性平,味甘、淡。\n",
|
||
"97 性寒、味苦。\n",
|
||
"98 性寒,味苦。\n",
|
||
"99 性微寒,味苦,有小毒。\n",
|
||
"100 性平、味甘。\n",
|
||
"101 性寒,味辛、苦。\n",
|
||
"102 性寒,味甘、苦。\n",
|
||
"103 性寒,味辛。\n",
|
||
"104 性寒,味苦。\n",
|
||
"105 性寒、味苦。\n",
|
||
"106 性温,味酸涩、甘。\n",
|
||
"107 性凉,味甘、淡。\n",
|
||
"108 性寒、味苦。\n",
|
||
"109 性寒、味苦。\n",
|
||
"110 性寒、味苦。\n",
|
||
"111 味苦,性寒。\n",
|
||
"112 性寒、味苦。\n",
|
||
"113 性寒、微苦。\n",
|
||
"114 性寒,味苦、咸。\n",
|
||
"115 性寒,味苦、涩。\n",
|
||
"116 性寒,味甘、苦。\n",
|
||
"117 性微寒,味甜、微苦。\n",
|
||
"118 性凉,味辛、苦。\n",
|
||
"119 性微寒、味苦。\n",
|
||
"120 性寒,味甘、咸。\n",
|
||
"121 性寒、味苦。\n",
|
||
"122 性寒,味苦、微辛。\n",
|
||
"123 性寒,味苦、咸。\n",
|
||
"124 性寒、味甘。\n",
|
||
"125 性凉,味甘、苦。\n",
|
||
"126 性寒、味苦。\n",
|
||
"127 性温,味辛、苦。\n",
|
||
"128 苦,寒。\n",
|
||
"129 性平,味苦。\n",
|
||
"130 味苦、微辛,性平。\n",
|
||
"131 性寒,味苦、辛。\n",
|
||
"132 性温、味辛。\n",
|
||
"133 性平、味苦。\n",
|
||
"134 性温,苦、甘。\n",
|
||
"135 性温,味辛、咸。\n",
|
||
"136 性凉,味甘。\n",
|
||
"137 性温,味甘、咸。\n",
|
||
"138 味辛、苦,性微温。\n",
|
||
"139 性温,味苦、辛。\n",
|
||
"140 性平,味苦、辛。\n",
|
||
"141 性平,味苦、辛。\n",
|
||
"142 性温,味苦、辛。\n",
|
||
"143 性温,味辛。\n",
|
||
"144 性平,味辛。\n",
|
||
"145 性温,味辛、苦。\n",
|
||
"146 性温,味辛、苦。\n",
|
||
"147 性温,味辛。\n",
|
||
"148 性温、味辛。\n",
|
||
"149 性温、味辛。\n",
|
||
"150 性温,味辛。\n",
|
||
"151 性平,味甘、淡。\n",
|
||
"152 性平、味酸。\n",
|
||
"153 性寒、味甘。\n",
|
||
"154 性凉,味甘。\n",
|
||
"155 性平,味甘。\n",
|
||
"156 性凉、味甘。\n",
|
||
"157 性平、味甘。\n",
|
||
"158 性寒,味甘。\n",
|
||
"159 性寒,味苦。\n",
|
||
"160 性凉,味甘、淡。\n",
|
||
"161 性寒,味苦。\n",
|
||
"162 性微寒,味苦。\n",
|
||
"163 性寒,味辛、苦。\n",
|
||
"164 性寒,味甘。\n",
|
||
"165 性微寒,味甘、苦。\n",
|
||
"166 性寒,味甘、淡。\n",
|
||
"167 性平,味苦。\n",
|
||
"168 性微寒,味辛、苦。\n",
|
||
"169 性凉,味苦、辛。\n",
|
||
"170 性平,味苦。\n",
|
||
"171 性凉,味甘。\n",
|
||
"172 性热,味辛、甘。\n",
|
||
"173 性热,味辛、甘。\n",
|
||
"174 性热、味辛。\n",
|
||
"175 性温,味辛、苦。\n",
|
||
"176 性温、味辛。\n",
|
||
"177 味辛,性温。\n",
|
||
"178 性温、味辛。\n",
|
||
"179 性温,味苦、辛。\n",
|
||
"180 性微温,味苦、辛。\n",
|
||
"181 性寒、味苦。\n",
|
||
"182 性平,味辛、微苦、甘。\n",
|
||
"183 性温,味苦。\n",
|
||
"184 性温、味辛。\n",
|
||
"185 性温,味辛。\n",
|
||
"186 性寒、味苦。\n",
|
||
"187 性温,味辛。\n",
|
||
"188 性温,味甘、苦。\n",
|
||
"189 性温,味辛、苦。\n",
|
||
"190 性微温,味辛。\n",
|
||
"191 性平,味苦。\n",
|
||
"192 性温,味辛、苦。\n",
|
||
"193 性温,味辛、苦。\n",
|
||
"194 性温,味酸、甘。\n",
|
||
"195 性温,味甘、辛。\n",
|
||
"196 性微温、味甘。\n",
|
||
"197 性温,味甘。\n",
|
||
"198 性平,味辛、甘。\n",
|
||
"199 性平、味甘。\n",
|
||
"200 性温、味辛。\n",
|
||
"201 性微温、味苦。\n",
|
||
"202 性温、味辛。\n",
|
||
"203 性平,味苦、甘。\n",
|
||
"204 性凉,味辛、苦。\n",
|
||
"205 性平,味甘、苦。\n",
|
||
"206 性温,味苦、甘。\n",
|
||
"207 性温,味辛、苦。\n",
|
||
"208 性温,味苦、甘。\n",
|
||
"209 性凉,味辛、苦。\n",
|
||
"210 性温,味辛、苦。\n",
|
||
"211 性温,味辛、苦。\n",
|
||
"212 性平、味苦。\n",
|
||
"213 性温,味苦、辛。\n",
|
||
"214 性平,味苦。\n",
|
||
"215 性温,味甘。\n",
|
||
"216 性平,味甘、咸。\n",
|
||
"217 性温、味苦。\n",
|
||
"218 性温,味苦、辛。\n",
|
||
"219 性平,味咸、苦,有毒。\n",
|
||
"220 性凉,味咸。\n",
|
||
"221 性凉,味甘。\n",
|
||
"222 性微寒,味苦。\n",
|
||
"223 性寒、味甘。\n",
|
||
"224 性寒,味苦。\n",
|
||
"225 性温,味甘、微苦。\n",
|
||
"226 性凉,味苦、甜。\n",
|
||
"227 性平,味甘、涩。\n",
|
||
"228 性温,味苦、辛。\n",
|
||
"229 性热,味辛。\n",
|
||
"230 性温,味辛。\n",
|
||
"231 性温,味辛。\n",
|
||
"232 性微温,味苦、辛、咸。\n",
|
||
"233 性平,味苦、辛。\n",
|
||
"234 性凉,味苦、甘。\n",
|
||
"235 性寒,味甘、微苦。\n",
|
||
"236 性寒、味甘。\n",
|
||
"237 性寒,味苦、咸。\n",
|
||
"238 性寒,味咸。\n",
|
||
"239 性微寒,味苦、辛。\n",
|
||
"240 味辛,性温:、脾经。\n",
|
||
"241 性温、味辛。\n",
|
||
"242 性平,味甘、苦。\n",
|
||
"243 性寒,味甘。\n",
|
||
"244 性凉,味苦。\n",
|
||
"245 性微温,味甘、苦。\n",
|
||
"246 性凉、味甘。\n",
|
||
"247 性温,味淡、苦。\n",
|
||
"248 性平、味甘。\n",
|
||
"249 性平,味甘。\n",
|
||
"250 性微温,味苦、辛。\n",
|
||
"251 性平,味甘。\n",
|
||
"252 性平,味甘、苦。\n",
|
||
"253 性微寒,味甘:有毒。\n",
|
||
"254 性平,味甘、涩。\n",
|
||
"255 性寒,味咸。\n",
|
||
"256 性凉,味咸、湿。\n",
|
||
"257 性寒,味苦。\n",
|
||
"258 性平,味辛、苦。\n",
|
||
"259 性凉,味甘、苦。\n",
|
||
"260 性寒,味咸。\n",
|
||
"261 性凉,味甘。\n",
|
||
"262 性平、味甘。\n",
|
||
"263 性寒,味咸。\n",
|
||
"264 性平,味减、辛。\n",
|
||
"265 性平,味咸、辛。\n",
|
||
"266 性温,味辛。\n",
|
||
"267 性温,味辛、苦。\n",
|
||
"268 性微寒,味辛、苦。\n",
|
||
"269 性凉,味甘、咸。\n",
|
||
"270 性温,味酸。\n",
|
||
"271 性温,味酸。\n",
|
||
"272 性温,味苦、酸涩。\n",
|
||
"273 性温,味酸、涩。\n",
|
||
"274 性微温,味酸。\n",
|
||
"275 性平,味甘、酸。\n",
|
||
"276 性平,味酸、涩。\n",
|
||
"277 性平,味咸、甘。\n",
|
||
"278 性温,味减、涩。\n",
|
||
"279 性平,味甘、涩。\n",
|
||
"280 性平,味甘、涩。\n",
|
||
"281 性寒,味苦。\n",
|
||
"282 性大寒,味甘、苦。\n",
|
||
"283 性寒,味苦。\n",
|
||
"284 性平、味甘。\n",
|
||
"285 性平,味辛、苦、甘。\n",
|
||
"286 性平,味甘。\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import re\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/286种药膳常用中药功能表.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"p = re.compile(r'[入归](.*?)经')\n",
|
||
"for k, v in dict1.items():\n",
|
||
" if '性味归经' in v.keys():\n",
|
||
" s = v['性味归经']\n",
|
||
" item = re.search(p,s)\n",
|
||
" #print(item)\n",
|
||
" if item is not None:\n",
|
||
" ss = item.group()\n",
|
||
" sss = re.sub(ss,'',s)\n",
|
||
" \n",
|
||
" p1 = r'[;:、,。:]+。'\n",
|
||
" ssss = re.sub(p1,'。',sss)\n",
|
||
" print(k,ssss)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 体质数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"#### 体质对应数据导入"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/tijianbingzheng.txt'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"m_key = set()\n",
|
||
"for k, v in dict1.items():\n",
|
||
" for item in v.keys():\n",
|
||
" m_key.add(item)\n",
|
||
"print(dict1)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 穴位数据导入"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 简单导出简介、内容"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"dict1 = {}\n",
|
||
"filename = 'file/zhongyi/xuewei.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" #print(line1['title'],dict1)\n",
|
||
" #print(dict1.keys())\n",
|
||
" #print(line1)\n",
|
||
" dict1.setdefault(line1['title'][0],{})\n",
|
||
" dict1[line1['title'][0]]['简介'] = line1['jj'] \n",
|
||
" dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
"filename = './file/穴位1.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 数据导入文件中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"filename = 'file/zhongyi/xuewei.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1.setdefault(line1['title'][0],{})\n",
|
||
" if len(list3) > 0:\n",
|
||
" \n",
|
||
" dict1[line1['title'][0]]['about'] = list3\n",
|
||
" dict1[line1['title'][0]].setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1[line1['title'][0]]['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
"filename = './file/穴位1.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 穴位数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"#dblist = myclient.list_database_names()\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"xuewei\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/xuewei.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for s in list3:\n",
|
||
" item = s.strip().split(':')\n",
|
||
" dict1['about'][item[0].strip()] = item[1].strip()\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 中医症状数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"zhongyizhengzhuang\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/zhongyizhengzhuang.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for i in range(0,int(len(list3)/2)):\n",
|
||
" dict1['about'][list3[2*i]] = list3[2*i+1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 疾病数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"jibing\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/jibing.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for i in range(0,int(len(list3)/2)):\n",
|
||
" dict1['about'][list3[2*i]] = list3[2*i+1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 术语数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"#dblist = myclient.list_database_names()\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"shuyu\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/shuyu.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for s in list3:\n",
|
||
" item = s.strip().split(':')\n",
|
||
" dict1['about'][item[0]] = item[1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2021-12-15T10:01:32.917184Z",
|
||
"iopub.status.busy": "2021-12-15T10:01:32.917184Z",
|
||
"iopub.status.idle": "2021-12-15T10:01:32.921185Z",
|
||
"shell.execute_reply": "2021-12-15T10:01:32.921185Z",
|
||
"shell.execute_reply.started": "2021-12-15T10:01:32.917184Z"
|
||
},
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 西医症状数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"xiyizhengzhuang\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/xiyizhengzhuang.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for i in range(0,int(len(list3)/2)):\n",
|
||
" dict1['about'][list3[2*i]] = list3[2*i+1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 药剂数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"#dblist = myclient.list_database_names()\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"yaoji\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/yaoji.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj'] \n",
|
||
" dict2 = dict(zip(list1, list2)) \n",
|
||
" if len(list3) > 0: \n",
|
||
" jj = {}\n",
|
||
" for s in list3:\n",
|
||
" item = s.strip().split(':')\n",
|
||
" jj[item[0]] = item[1] \n",
|
||
" dict1['name'] = jj['名称']\n",
|
||
" dict1['about'] = jj\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 药膳数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"#dblist = myclient.list_database_names()\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"yaoshan\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/yaoshan.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for s in list3:\n",
|
||
" item = s.strip().split(':')\n",
|
||
" dict1['about'][item[0]] = item[1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"#### 中草药数据导入数据库中"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"zhongcaoyao\"]\n",
|
||
"db_list = []\n",
|
||
"filename = 'file/zhongyi/zhongcaoyao.json'\n",
|
||
"with open(filename,'r',encoding='utf-8') as fl:\n",
|
||
" for line in fl:\n",
|
||
" dict1 = {}\n",
|
||
" line1 = json.loads(re.sub(r'\\xa0','',line))\n",
|
||
" list1 = line1['tables']\n",
|
||
" list2 = line1['contents']\n",
|
||
" list3 = line1['jj']\n",
|
||
" dict2 = dict(zip(list1, list2))\n",
|
||
" dict1['name'] = line1['title'][0]\n",
|
||
" if len(list3) > 0:\n",
|
||
" dict1.setdefault('about',{})\n",
|
||
" for i in range(0,int(len(list3)/2)):\n",
|
||
" dict1['about'][list3[2*i]] = list3[2*i+1]\n",
|
||
" dict1.setdefault('content',{})\n",
|
||
" for k, v in dict2.items():\n",
|
||
" dict1['content'][k] = v \n",
|
||
" #dict1[line1['title'][0]]['内容'] = dict2\n",
|
||
" db_list.append(dict1)\n",
|
||
"x = mycol.insert_many(db_list)\n",
|
||
"print('ok!')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 穴位隶属整理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"xuewei\"]\n",
|
||
"dict1 = {}\n",
|
||
"list1 = []\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about.隶属\":1 }):\n",
|
||
" if 'about' in x.keys():\n",
|
||
" m_ls = x['about']['隶属']\n",
|
||
" dict1.setdefault(m_ls,[])\n",
|
||
" dict1[m_ls].append(x['name'])\n",
|
||
"'''\n",
|
||
"filename = './file/穴位隶属.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) \n",
|
||
"'''\n",
|
||
"for item in dict1.keys():\n",
|
||
" print(item)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 穴位功能、主治统计"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"xuewei\"]\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"mo = '等$'\n",
|
||
"mo2 = r'[,、;。]'\n",
|
||
"\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" dict1.setdefault(x['name'],{})\n",
|
||
" if '主治' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['主治']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['主治'] = list1\n",
|
||
" if '功能' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['功能']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['功能'] = list1\n",
|
||
" \n",
|
||
"\n",
|
||
"filename = './file/穴位主治功能统计.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) \n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 穴位数据导出Excel表"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import openpyxl\n",
|
||
"\n",
|
||
"filename = 'file/穴位.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" dict1 = json.load(fl)\n",
|
||
"filename = 'file/穴位简要情况表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"sheet['A1'] = '穴位名称'\n",
|
||
"sheet['B1'] = '隶属'\n",
|
||
"sheet['C1'] = '位置'\n",
|
||
"sheet['D1'] = '主治'\n",
|
||
"sheet['E1'] = '功能'\n",
|
||
"sheet['F1'] = '操作'\n",
|
||
"sheet['G1'] = '主要配伍'\n",
|
||
"i = 2\n",
|
||
"for k, v in dict1.items():\n",
|
||
" sheet[f'A{i}'] = k\n",
|
||
" sheet[f'B{i}'] = v['简介'][0].split(':')[1]\n",
|
||
" sheet[f'C{i}'] = v['简介'][1].split(':')[1]\n",
|
||
" sheet[f'D{i}'] = v['简介'][2].split(':')[1]\n",
|
||
" sheet[f'E{i}'] = v['简介'][3].split(':')[1]\n",
|
||
" sheet[f'F{i}'] = v['简介'][4].split(':')[1]\n",
|
||
" sheet[f'G{i}'] = v['简介'][5].split(':')[1] \n",
|
||
" i += 1\n",
|
||
"wb.save(filename) \n",
|
||
"print('ok!')\n",
|
||
"\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 术语数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"shuyu\"]\n",
|
||
"dict1 = {}\n",
|
||
"list1 = []\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" if '类别' in x['about'].keys():\n",
|
||
" m_lb = x['about']['类别'].replace(' ','')\n",
|
||
" else:\n",
|
||
" m_lb = '无类别'\n",
|
||
" dict1.setdefault(re.sub('\\xa0+','',m_lb),[])\n",
|
||
" dict1[m_lb].append(x['name'])\n",
|
||
"filename = './file/术语类别.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"jp-MarkdownHeadingCollapsed": true,
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 疾病数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"jibing\"]\n",
|
||
"dict1 = {}\n",
|
||
"list1 = []\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" if '疾病分类' in x['about'].keys():\n",
|
||
" m_lb = x['about']['疾病分类'].replace(' ','')\n",
|
||
" else:\n",
|
||
" m_lb = '无类别'\n",
|
||
" dict1.setdefault(re.sub('\\xa0+','',m_lb),[])\n",
|
||
" dict1[m_lb].append(x['name'])\n",
|
||
"filename = './file/疾病类别.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 中草药数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"zhongcaoyao\"]\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"mo = '等$'\n",
|
||
"mo2 = r'[,、;。]'\n",
|
||
"\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" dict1.setdefault(x['name'],{})\n",
|
||
" if '别名' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['别名']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['别名'] = list1\n",
|
||
" if '功能' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['功能']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['功能'] = list1\n",
|
||
" if '主治' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" dict1[x['name']]['主治'] = s = x['about']['主治']\n",
|
||
" \n",
|
||
"\n",
|
||
"filename = './file/中草药主治功能统计.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 药剂数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"yaoji\"]\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"mo = '等$'\n",
|
||
"mo2 = r'[,、;。]'\n",
|
||
"\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" dict1.setdefault(x['name'],{})\n",
|
||
" if '功用' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['功用']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['功用'] = list1\n",
|
||
" if '主治' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" dict1[x['name']]['主治'] = s = x['about']['主治']\n",
|
||
" \n",
|
||
"\n",
|
||
"filename = './file/药剂主治功用统计.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 药膳数据处理"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import re\n",
|
||
"import pymongo\n",
|
||
"\n",
|
||
"myclient = pymongo.MongoClient('mongodb://10.147.17.6:27017/')\n",
|
||
"mydb = myclient['dayi']\n",
|
||
"mycol = mydb[\"yaoshan\"]\n",
|
||
"\n",
|
||
"dict1 = {}\n",
|
||
"mo = '等$'\n",
|
||
"mo2 = r'[,、;。]'\n",
|
||
"\n",
|
||
"for x in mycol.find({},{ \"_id\": 0,\"name\":1,\"about\":1 }):\n",
|
||
" dict1.setdefault(x['name'],{})\n",
|
||
" if '功效' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['功效']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['功效'] = list1\n",
|
||
" if '相关疾病' in x['about'].keys():\n",
|
||
" #dict1[x['name']].setdefault('主治',[])\n",
|
||
" s = x['about']['相关疾病']\n",
|
||
" s1 = re.sub(mo, '', s)\n",
|
||
" list1 = re.split(mo2,s1)\n",
|
||
" if '' in list1:\n",
|
||
" list1.remove('')\n",
|
||
" dict1[x['name']]['相关疾病'] = list1 \n",
|
||
" \n",
|
||
"\n",
|
||
"filename = './file/药膳功能统计.json'\n",
|
||
"with open(filename,'w') as fl:\n",
|
||
" json.dump(dict1, fl) "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"source": [
|
||
"### 北海炼化体检数据提取"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import json\n",
|
||
"import openpyxl\n",
|
||
"import os,sys,shutil\n",
|
||
"\n",
|
||
"file_name = 'file/中石化北海炼化2020年团体体检报告.xlsx'\n",
|
||
"wb = openpyxl.load_workbook(file_name)\n",
|
||
"sheet = wb.active\n",
|
||
"dict1 = {}\n",
|
||
"for n in range(1,sheet.max_row+1):\n",
|
||
" bh = sheet.cell(n,2).value\n",
|
||
" name = sheet.cell(n,3).value\n",
|
||
" xb = sheet.cell(n,4).value\n",
|
||
" nl = sheet.cell(n,5).value\n",
|
||
" bz = sheet.cell(n,7).value\n",
|
||
" dict1.setdefault(bh,{})\n",
|
||
" dict1[bh]['姓名'] = name\n",
|
||
" dict1[bh]['性别'] = xb\n",
|
||
" dict1[bh]['年龄'] = nl\n",
|
||
" dict1[bh].setdefault('病症',[])\n",
|
||
" dict1[bh]['病症'].append(bz.strip())\n",
|
||
"wb.close()\n",
|
||
"#print(dict1)\n",
|
||
" \n",
|
||
" \n",
|
||
"filename = 'file/中石化北海炼化2020年体检人员情况表.xlsx'\n",
|
||
"wb = openpyxl.Workbook()\n",
|
||
"sheet = wb.active\n",
|
||
"sheet['A1'] = '体检编号'\n",
|
||
"sheet['B1'] = '姓名'\n",
|
||
"sheet['C1'] = '性别'\n",
|
||
"sheet['D1'] = '年龄'\n",
|
||
"sheet['E1'] = '异常名称'\n",
|
||
"\n",
|
||
"i =2\n",
|
||
"for k, v in dict1.items():\n",
|
||
" sheet[f'A{i}'] = k\n",
|
||
" sheet[f'B{i}'] = v['姓名']\n",
|
||
" sheet[f'C{i}'] = v['性别']\n",
|
||
" sheet[f'D{i}'] = v['年龄']\n",
|
||
" sheet[f'E{i}'] = ','.join(v['病症']) \n",
|
||
" i += 1\n",
|
||
"wb.save(filename)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## excel数据读取"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import openpyxl\n",
|
||
"import json\n",
|
||
"\n",
|
||
"filename = 'data/长岭全成绩.xlsx'\n",
|
||
"wb = openpyxl.load_workbook(filename)\n",
|
||
"sheet = wb.active\n",
|
||
"data1 =list(sheet.values)\n",
|
||
"del data1[0]\n",
|
||
"print(data1)\n",
|
||
"#for data in data1:\n",
|
||
"# print(data)\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## 图表生成"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 高考一分一段表生成"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from pyecharts.globals import CurrentConfig, NotebookType\n",
|
||
"CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB\n",
|
||
"from pyecharts import options as opts\n",
|
||
"from pyecharts.charts import Bar,Line\n",
|
||
"import pyecharts.options as opts\n",
|
||
"from pyecharts.faker import Faker\n",
|
||
"import json\n",
|
||
"\n",
|
||
"list_x = []\n",
|
||
"list_y = []\n",
|
||
"filename = 'data/17-21年一分一段表.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" m_xx = json.load(fl)\n",
|
||
"dict1 =m_xx['2020']['z']\n",
|
||
"for i in sorted(dict1,reverse=True): #降序\n",
|
||
" list_x.append(i)\n",
|
||
" list_y.append(dict1[i]['num_person'])\n",
|
||
" #print(i,dict1[i]['num_person'])\n",
|
||
"bar = (\n",
|
||
" Bar()\n",
|
||
" .add_xaxis(list_x)\n",
|
||
" .add_yaxis(\"2020年一分一段表\", list_y, category_gap=0, color=Faker.rand_color())\n",
|
||
" .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
|
||
" .set_global_opts(title_opts=opts.TitleOpts(title=\"Bar-直方图\"))\n",
|
||
" .render(\"bar_histogram2020.html\")\n",
|
||
"# .set_global_opts(title_opts=opts.TitleOpts(title=\"运动步幅及步频\", subtitle=\"户外运动\"),)\n",
|
||
")\n",
|
||
"#bar.load_javascript()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"bar.render_notebook()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from pyecharts.globals import CurrentConfig, NotebookType\n",
|
||
"CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB\n",
|
||
"from pyecharts import options as opts\n",
|
||
"from pyecharts.charts import Bar,Line\n",
|
||
"import pyecharts.options as opts\n",
|
||
"from pyecharts.faker import Faker\n",
|
||
"import json\n",
|
||
"\n",
|
||
"x_2021 = []\n",
|
||
"y_2021 = []\n",
|
||
"x_2020 = []\n",
|
||
"y_2020 = []\n",
|
||
"filename = 'data/17-21年一分一段表.json'\n",
|
||
"with open(filename,'r') as fl:\n",
|
||
" m_xx = json.load(fl)\n",
|
||
"dict1 =m_xx['2021']['z']\n",
|
||
"for i in sorted(dict1,reverse=True): #降序\n",
|
||
" x_2021.append(i)\n",
|
||
" y_2021.append(dict1[i]['num_person'])\n",
|
||
"dict1 =m_xx['2020']['z']\n",
|
||
"for i in sorted(dict1,reverse=True): #降序\n",
|
||
" x_2021.append(i)\n",
|
||
" y_2021.append(dict1[i]['num_person'])\n",
|
||
" #print(i,dict1[i]['num_person'])\n",
|
||
"bar = (\n",
|
||
" Bar()\n",
|
||
" .add_xaxis(list_x)\n",
|
||
" .add_yaxis(\"人数\", list_y, category_gap=0, color=Faker.rand_color())\n",
|
||
" .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
|
||
" .set_global_opts(title_opts=opts.TitleOpts(title=\"Bar-直方图\"))\n",
|
||
" .render(\"bar_histogram.html\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 生成雷达图"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from pyecharts.globals import CurrentConfig, NotebookType\n",
|
||
"import pyecharts.options as opts\n",
|
||
"CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB\n",
|
||
"from pyecharts.charts import Radar\n",
|
||
"\n",
|
||
"\n",
|
||
"v1 = [[90, 100, 80, 76, 88, 95]]\n",
|
||
"v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]\n",
|
||
"\n",
|
||
"bar =(\n",
|
||
" Radar(init_opts=opts.InitOpts())\n",
|
||
" .add_schema(\n",
|
||
" schema=[\n",
|
||
" opts.RadarIndicatorItem(name=\"销售(sales)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"管理(Administration)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"信息技术(Information Technology)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"客服(Customer Support)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"研发(Development)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"市场(Marketing)\", max_=100),\n",
|
||
" ],\n",
|
||
" splitarea_opt=opts.SplitAreaOpts(\n",
|
||
" is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)\n",
|
||
" ),\n",
|
||
" textstyle_opts=opts.TextStyleOpts(color=\"#aaa\"),\n",
|
||
" )\n",
|
||
" .add(\n",
|
||
" series_name=\"预算分配(Allocated Budget)\",\n",
|
||
" data=v1,\n",
|
||
" linestyle_opts=opts.LineStyleOpts(color=\"#CD0000\"),\n",
|
||
" )\n",
|
||
" \n",
|
||
" .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
|
||
" .set_global_opts(\n",
|
||
" title_opts=opts.TitleOpts(title=\"基础雷达图\"), legend_opts=opts.LegendOpts()\n",
|
||
" )\n",
|
||
" #.render(\"basic_radar_chart.html\")\n",
|
||
" \n",
|
||
")\n",
|
||
"bar.load_javascript()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"bar.render_notebook()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"from pyecharts.globals import CurrentConfig, NotebookType\n",
|
||
"import pyecharts.options as opts\n",
|
||
"CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB\n",
|
||
"from pyecharts.charts import Radar\n",
|
||
"from pyecharts.render import make_snapshot\n",
|
||
"from snapshot_phantomjs import snapshot\n",
|
||
"\n",
|
||
"\n",
|
||
"v1 = [[90, 100, 80, 76, 88, 95]]\n",
|
||
"v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]\n",
|
||
"\n",
|
||
"bar =(\n",
|
||
" Radar(init_opts=opts.InitOpts())\n",
|
||
" .add_schema(\n",
|
||
" schema=[\n",
|
||
" opts.RadarIndicatorItem(name=\"销售(sales)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"管理(Administration)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"信息技术(Information Technology)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"客服(Customer Support)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"研发(Development)\", max_=100),\n",
|
||
" opts.RadarIndicatorItem(name=\"市场(Marketing)\", max_=100),\n",
|
||
" ],\n",
|
||
" splitarea_opt=opts.SplitAreaOpts(\n",
|
||
" is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)\n",
|
||
" ),\n",
|
||
" textstyle_opts=opts.TextStyleOpts(color=\"#aaa\"),\n",
|
||
" )\n",
|
||
" .add(\n",
|
||
" series_name=\"预算分配(Allocated Budget)\",\n",
|
||
" data=v1,\n",
|
||
" linestyle_opts=opts.LineStyleOpts(color=\"#CD0000\"),\n",
|
||
" )\n",
|
||
" \n",
|
||
" .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n",
|
||
" .set_global_opts(\n",
|
||
" title_opts=opts.TitleOpts(title=\"基础雷达图\"), legend_opts=opts.LegendOpts()\n",
|
||
" )\n",
|
||
" #.render(\"basic_radar_chart.html\")\n",
|
||
" \n",
|
||
")\n",
|
||
"make_snapshot(snapshot, bar.render(), \"bar0.png\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pygal \n",
|
||
"\n",
|
||
"radar_chart = pygal.Radar()\n",
|
||
"radar_chart.title = 'V8 benchmark results'\n",
|
||
"radar_chart.x_labels = ['Richards', 'DeltaBlue', 'Crypto', 'RayTrace', 'EarleyBoyer', 'RegExp', 'Splay', 'NavierStokes']\n",
|
||
"radar_chart.add('Chrome', [6395, 8212, 7520, 7218, 12464, 1660, 2123, 8607])\n",
|
||
"\n",
|
||
"radar_chart.render_to_png('chart.png')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.10.12"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 4
|
||
}
|