使用numpy自带方法对csv文件中的列进行求和并将求和结果写入文件
需求: 对csv中部分列进行求和,并将求和结果写入文件中
- 需导入使用的库
1 import csv 2 import numpy as np
- 定义空数组,将读取的每一行同一列写入列表中
View Code1 with open(filepath) as csv_file: 2 row = csv.reader(csv_file, delimiter=',') 3 next(row) # 读取⾸⾏ 4 prdt_tp_list = [] # 建⽴⼀个数组来存储prdt_tp数据 5 prdt_fn_list = [] # 建⽴⼀个数组来存储prdt_fn数据 6 prdt_tn_list = [] # 建⽴⼀个数组来存储prdt_tn数据 7 prdt_fp_list = [] # 建⽴⼀个数组来存储prdt_fp数据 8 9 10 # 读取每一行的第二列数据,并将其加入到prdt_tp_sum之中 11 for r in row: 12 prdt_tp_list.append(float(r[1])) # 将字符串数据转化为浮点型加⼊到数组之中 13 prdt_fn_list.append(float(r[2])) # 将字符串数据转化为浮点型加⼊到数组之中 14 prdt_tn_list.append(float(r[3])) # 将字符串数据转化为浮点型加⼊到数组之中 15 prdt_fp_list.append(float(r[4])) # 将字符串数据转化为浮点型加⼊到数组之中
- 采用numpy自带方法对列表进行求和
View Code1 prdt_tp_sum = np.sum(prdt_tp_list) 2 prdt_fn_sum = np.sum(prdt_fn_list) 3 prdt_tn_sum = np.sum(prdt_tn_list) 4 prdt_fp_sum = np.sum(prdt_fp_list)
- 对求和结果进行相应计算并输出百分号格式方法
View Code1 FNR = '{:.2f}%'.format( prdt_fn_sum/(prdt_tp_sum+ prdt_fn_sum)*100)
- 将计算结果写入文件中,写入时需做转化采用numpy自带的str方法
View Code1 with open(filepath,"a+",encoding="utf-8") as f: 2 #np.str对prdt_tp_sum为numpy.float64转化成str类型,写入文件需转化成str类型 3 f.write("single_total" + "," + np.str(prdt_tp_sum) + "," + np.str(prdt_fn_sum) + "," + 4 np.str(prdt_tn_sum) + "," + np.str(prdt_fp_sum) + "," + np.str(FNR)


浙公网安备 33010602011771号