[在此处输入图像描述] [1] [在此处输入图像描述] [2]我有一个CSV文件,其中包含303行的14个类别,我需要找到每个类别的总和。到目前为止,我遗憾的是,如何单独查找每个类别的总和并没有多少帮助,并且按年龄,gen,cpt,rbp,sc,fbs,rer,mhra,eia,sd的顺序缩写了14个类别,spsd,nmv,dt,hd
import string
with open("train.csv", "r") as f:
for hd in f.read ():13
前几行是这样的
阿布德·吉尔吉姆
63 1 1 145 233 1 2 150 0 2.3 3 0 6 0
67 1 4 160 286 0 2 108 1 1.5 2 3 3 2
67 1 4 120 229 0 2 129 1 2.6 2 2 7 1
您可以将每一行映射为float,转置和对每一列求和,并用(column_name,column_sum)配对来形成字典:
import csv
with open("train.csv", "r") as f:
r = csv.reader(f)
# pull first row i.e A,B,C,D... to use ad the keys
keys = next(r)
# iterate ober the rows mapping to float and transpose
# with zip(*... so rows become columns, one per key
summed_dict = dict(zip(keys, map(sum, zip(*(map(float, row) for row in r)))))
对于您的输入样本:
A,B,C,D,E,f,G,H,I,J,K,L,M,N
63,1,1,145,233,1,2,150,0,2.3,3,0,6,0
67,1,4,160,286,0,2,108,1,1.5,2,3,3,2
67,1,4,120,229,0,2,129,1,2.6,2,2,7,1
输出:
{'K': 7.0, 'D': 425.0, 'B': 3.0, 'G': 6.0, 'f': 1.0, 'N': 3.0, 'M': 16.0, 'C': 9.0, 'A': 197.0, 'E': 748.0, 'L': 5.0, 'H': 387.0, 'I': 2.0, 'J': 6.4}
您可以使用DictReader,但在这里使用它并没有真正的优势。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句