1.每種伏邪,對應方劑所出現的次數(部分資料如下)
2.每種伏邪,對應中草藥出現的次數
話不多說直接**,資料檔案github瀏覽
(初學菜鳥乙個,輕噴)
問題一:
import numpy as np
from collections import counter
data=np.loadtxt(
open
('d:\sta.csv'
),delimiter=
',',skiprows =
1, encoding=
'utf8'
,dtype=
str)
#讀取資料
n=int
(input
("輸入伏邪**,「風\寒\溼\熱\瘀\毒」分別為「0/1/3/5/6/7」 :"))
#n為不同伏邪對應的序列a=0
#記錄行數
count=
0#記錄滿足條件的數量
fangji=
#用於儲存滿足條件的資料
for tof in data[
:,n]
:#判斷是否滿足某種伏邪,如果滿足則將該行資料加入fangji
if tof==
'1':8]
)#8為方劑所在的.csv序列
a=a+
1#行數加一
count=count+
1else
: a=a+
1#無論滿不滿足條件,均對行數加一
print
("符合條件的資料有:%d"
%count)
result=counter(fangji)
print
("結果為"
,result)
執行後結果如下:
輸入的伏邪**為0.
.csv檔案部分資料傳至github
import numpy as np
data=np.loadtxt(
open
('d:\drugs.csv'
),delimiter=
',', encoding=
'utf8'
,dtype=
str)
#讀取資料
#print(data)列印資料a=0
#記錄行數
count=
0#記錄滿足條件的數量
zy=[
]#list儲存滿足條件的資料
dict
=#字典儲存最終統計結果
index=data[0,
:][6
:]#儲存第一行中藥名稱,作為字典的seq
counter=
#儲存中藥數量,不是counter()方法!!!!
result=
dict
.fromkeys(index)
#將index中的資料作為字典的key,且value預設為none
#判斷是否滿足某種伏邪,如果滿足則提取資料存入zy
n=int
(input
("輸入伏邪**,「風\寒\溼\熱\瘀\毒」分別為「0/1/2/3/4/5」 :"))
for tof in data[
:,n]
:#[:,n]表示所選的伏邪列數
if tof==
'1'::]
[6:]
)#[a,:]表示第a行資料,[6:]表示第a行資料從第七列開始的資料,將其存入zy
a=a+
1else
: a=a+
1#統計每種藥材的數量
sum=
0#用於藥材計數j=0
for i in
range
(len
(result)):
#len(result)為藥材名稱數量
sum=
0for j in zy:
if j[i]
=='1'
:#zy中的第j個資料行中第i個藥材名稱
sum=
sum+
1sum
)#存入counter
num=
0for key in result:
#將counter中的資料作為value,賦值給result{}中的key,滿足一一對應關係
result[key]
=counter[num]
num=num+
1print
(result)
結果如下:
**輸入為0:
資料位址
python對csv檔案的處理
在專案中prefix為mapeventmonster,surfix為csv。因此以questid 99070333為例,對應的csv檔名為 mapeventmonster 990703330.csvroomid rate enemygroupid action messageno 0 message...
python3 6 python對CSV檔案的讀寫
什麼是csv檔案 csv檔案內容中,用逗號分割值,可以用excel開啟檢視,由於是純文字,任何編輯器也都可以開啟,與excel檔案不同,csv檔案中 1.值沒有型別,所有值都是字串 2.不能指定字型顏色等樣式 3.不能指定單元格的寬高,不能合併單元格 4.沒有多個工作表 5.不能嵌入圖表 在pyth...
使用Python對Csv檔案操作
就可以儲存為csv檔案,檔案內容是 no.name,age,score 1,mayi,18,99 2,jack,21,89 3,tom,25,95 4,rain,19,80 假設上述csv檔案儲存為 test.csv 如何用python像操作excel一樣提取其中的一列,即乙個字段,利用python...