将多个csv文件合成一个csv

1.python的writer做法

import csv
import pandas as pd
import os
from statistics import mean
#对dev测试生成的多个csv进行融合
def merge_different_csv():CSV_C0_NAME = 'file_name'CSV_C1_NAME = 'real_length'CSV_C2_NAME = 'dev_length'CSV_C3_NAME = 'dev_length_abs_error'CSV_C4_NAME = 'dev_length_relative_error'CSV_C5_NAME = 'prod_length'CSV_C6_NAME = 'prod_length_abs_error'CSV_C7_NAME = 'prod_length_relative_error'CSV_C8_NAME  = 'real_weight'CSV_C9_NAME  = 'dev_weight'CSV_C10_NAME = 'dev_weight_abs_error'CSV_C11_NAME = 'dev_weight_relative_error'CSV_C12_NAME = 'prod_weight'CSV_C13_NAME = 'prod_weight_abs_error'CSV_C14_NAME = 'prod_weight_relative_error'CSV_C15_NAME = 'dev_time'CSV_C16_NAME = 'prod_time'csv_path='./data/csv_data'every_csv__path_list_names=[os.path.join(csv_path,i) for i in os.listdir(csv_path)]dev_length_error=[]prod_length_error = []dev_weight_error = []prod_weight_error = []# 计算meanfor every_csv_path in every_csv__path_list_names:with open(every_csv_path, "r") as csvfile:reader2 = csv.reader(csvfile)  # 读取csv文件,返回的是迭代类型# print(reader2)for i,csv_list in enumerate(reader2):# print(csv_list)if i:csv_rows ={CSV_C0_NAME: csv_list[0],CSV_C1_NAME: csv_list[1],CSV_C2_NAME: csv_list[2],CSV_C3_NAME: csv_list[3],CSV_C4_NAME: csv_list[4],CSV_C5_NAME: csv_list[5],CSV_C6_NAME: csv_list[6],CSV_C7_NAME: csv_list[7],CSV_C8_NAME: csv_list[8],CSV_C9_NAME: csv_list[9],CSV_C10_NAME: csv_list[10],CSV_C11_NAME: csv_list[11],CSV_C12_NAME: csv_list[12],CSV_C13_NAME: csv_list[13],CSV_C14_NAME: csv_list[14],CSV_C15_NAME: csv_list[15],CSV_C16_NAME: csv_list[16]}dev_length_error.append(float(csv_rows.get(CSV_C4_NAME)))prod_length_error.append(float(csv_rows.get(CSV_C7_NAME)))dev_weight_error.append(float(csv_rows.get(CSV_C11_NAME)))prod_weight_error.append(float(csv_rows.get(CSV_C14_NAME)))# print(round(mean(dev_length_error),2))# print(round(mean(prod_length_error), 2))# print(round(mean(dev_weight_error), 2))# print(round(mean(prod_weight_error), 2))CSV_C4_NAME = CSV_C4_NAME + '=' + str(round(mean(dev_length_error), 2)) + '%'CSV_C7_NAME = CSV_C7_NAME + '=' + str(round(mean(prod_length_error), 2)) + '%'CSV_C11_NAME = CSV_C11_NAME + '=' + str(round(mean(dev_weight_error), 2)) + '%'CSV_C14_NAME = CSV_C14_NAME + '=' + str(round(mean(prod_weight_error), 2)) + '%'print(CSV_C4_NAME, CSV_C7_NAME, CSV_C11_NAME, CSV_C14_NAME)fieldnames_l = [CSV_C0_NAME, CSV_C1_NAME, CSV_C2_NAME, CSV_C3_NAME, CSV_C4_NAME, CSV_C5_NAME, CSV_C6_NAME,CSV_C7_NAME, CSV_C8_NAME, CSV_C9_NAME, CSV_C10_NAME, CSV_C11_NAME, CSV_C12_NAME, CSV_C13_NAME,CSV_C14_NAME, CSV_C15_NAME, CSV_C16_NAME]csvfile_all = open('./data/pig_dev_prod_data.csv', 'w')writer_pig_data = csv.DictWriter(csvfile_all, fieldnames=fieldnames_l)writer_pig_data.writeheader()for every_csv_path in every_csv__path_list_names:with open(every_csv_path, "r") as csvfile:reader2 = csv.reader(csvfile)  # 读取csv文件,返回的是迭代类型# print(reader2)for i,csv_list in enumerate(reader2):# print(csv_list)if i:csv_rows ={CSV_C0_NAME: csv_list[0],CSV_C1_NAME: csv_list[1],CSV_C2_NAME: csv_list[2],CSV_C3_NAME: csv_list[3],CSV_C4_NAME: csv_list[4],CSV_C5_NAME: csv_list[5],CSV_C6_NAME: csv_list[6],CSV_C7_NAME: csv_list[7],CSV_C8_NAME: csv_list[8],CSV_C9_NAME: csv_list[9],CSV_C10_NAME: csv_list[10],CSV_C11_NAME: csv_list[11],CSV_C12_NAME: csv_list[12],CSV_C13_NAME: csv_list[13],CSV_C14_NAME: csv_list[14],CSV_C15_NAME: csv_list[15],CSV_C16_NAME: csv_list[16]}writer_pig_data.writerow(csv_rows)

2.pandas做法

import os
import pandas as pd
#对dev测试生成的多个csv进行融合
def merge_different_csv():"""notice"""out_csv_path='pig_dev_prod_data.csv'csv_path = './out_csv'every_csv_path_list_names=[os.path.join(csv_path,i) for i in os.listdir(csv_path)]df=pd.read_csv(every_csv_path_list_names[-1])df.to_csv(out_csv_path, sep=',', encoding='utf-8', index=False)for i in range(len(every_csv_path_list_names)-1):df = pd.read_csv(every_csv_path_list_names[i])df.to_csv(out_csv_path,encoding='utf-8',index=False,header=False, mode='a+')df_all=pd.read_csv(out_csv_path)dev_length_relative_error=df_all['dev_length_relative_error']prod_length_relative_error=df_all['prod_length_relative_error']real_length=df_all['real_length']mean_dev_length=round(sum(dev_length_relative_error) / sum(real_length) * 100,2)mean_prod_length=round(sum(prod_length_relative_error) / sum(real_length) * 100,2)dev_weight_relative_error = df_all['dev_weight_relative_error']prod_weight_relative_error = df_all['prod_weight_relative_error']real_weight = df_all['real_weight']mean_dev_weight=round(sum(dev_weight_relative_error)/sum(real_weight)*100,2)mean_prod_weight=round(sum(prod_weight_relative_error) / sum(real_weight) * 100,2)print('测试模型长度误差 %.2f, 生产模型长度误差 %.2f' % (mean_dev_length, mean_prod_length))print('测试模型重量误差 %.2f, 生产模型重量误差 %.2f' % (mean_dev_weight, mean_prod_weight))dev_length_error_col_name = 'dev_length_relative_error {0}%'.format(mean_dev_length)prod_length_error_col_name = 'prod_length_relative_error {0}%'.format(mean_prod_length)dev_weight_error_col_name = 'dev_weight_relative_error {0}%'.format(mean_dev_weight)prod_weight_error_col_name = 'prod_weight_relative_error {0}%'.format(mean_prod_weight)df_all.rename(columns={'dev_length_relative_error': dev_length_error_col_name,'prod_length_relative_error': prod_length_error_col_name,'dev_weight_relative_error': dev_weight_error_col_name,'prod_weight_relative_error': prod_weight_error_col_name},inplace=True)df_all.to_csv(out_csv_path, encoding='utf-8',index=False)if __name__ == '__main__':merge_different_csv()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信接口开发-初级体验

目录: 1. 微信接口的注册 2. 申请成为开发者 3. 申请测试账号 4. 获取access_token值 5. 调用接口 6. 自己编写程序 7. 总结 1. 微信接口的注册 进入到微信开发的官网(https://mp.weixin.qq.com/)进行注册。不过注册时需要一张手持身份证的照…

德国汽车产业研究:立足本土,迈向世界

来源:国泰君安德国汽车市场目前已进入成熟阶段,成熟阶段的标志是国内销量增速下降,自主品牌份额远高于其他品牌。国内市场趋于饱和,而出口量快速增长,并且在豪华车市场拥有高市场份额。德国汽车产业链的特点是&#xf…

利用混淆矩阵查看每一类预测结果+miou计算

混淆矩阵的示意图如下: import numpy as np cmnp.array([[4,0,0,0],[0,1,0,0],[0, 0, 2, 0],[0, 1, 3, 0]]) plt.figure() plt.grid(False) plt.imshow(cm, cmapjet) plt.colorbar() plt.show() import matplotlib.pyplot as plt import seaborn as sn import numpy…

Ubantu系统配置固定IP地址和Pycharm连接远程服务器

当需要远程办公时,使用pycharm远程连接服务器是必要的。 PyCharm提供两种远程调试(Remote Debugging)的方式: 配置远程的解释器(remote interpreter)配置Python调试服务器(Python Debug Server) 本篇文章主…

人工智能正在如何改变世界:BBC 总结 AI 的 A 到 Z

来源:AI 科技评论摘要:如今,人工智能已经不是一项虚无缥缈的实验室科技,它已经融入我们生活的方方面面。BBC Future 栏目撰写了一篇轻松愉快的文章,选出了首字母 A 到 Z 的 26 个单词,借助它们介绍机器的思…

灵活运用 SQL SERVER FOR XML PATH

FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR…

近代数字信号处理实验-DFT分析信号的频谱

一、实验目的 (1)掌握利用DFT近似计算不同类型信号频谱的原理和方法。 (2)理解误差产生的原因及减小误差的方法。 (3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。 二、…

人工智能+能源:能源行业变革新趋势

来源:资本实验室随着环保压力的不断加大,以及可再生能源成本持续降低等因素,越来越多的国家都开始大力推动从传统化石能源转向可再生能源,全球很多大型企业也纷纷加入了全球可再生能源计划RE100,以实现可再生能源100%的…

利用numpy生成各种波

一,生成矩形波 矩形波的傅里叶级数 xnp.linspace(-np.pi,np.pi,201) knp.arange(1,99) k2*k-1 ynp.zeros_like(x) for i in range(len(x)):y[i](4/np.pi)*np.sum(np.sin(k*x[i])/k) # print(t) # print(f) plt.plot(x,y) plt.show() 二,生成锯齿波和三角…

解决TeamViewer访问超时限制的问题

一、卸载TeamViewer:找到安装路径,点击uninstall卸载 二、修改MAC地址 1、查看现有的mac地址:打开cmd界面,输入ipconfig/all 按回车,红框标记为无线局域网mac地址。 2、修改现有无线局域网mac地址 (1)按住…

Linux系统中的load average

1. load average 定义 linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 通过系统命令"w"查看当前load average情况 上边0.31,0.30,0.31表示 第一位0.…

工业机器人原来可以这么酷,马斯克和中国美的都对它青睐有加

来源:机器人大讲堂摘要:工业机器人或许是大家认为最枯燥的机器人之一了吧?每次机器人展会上,工业机器人的展位总会备受冷落,硬邦邦的机械臂相比呆萌可爱的服务机器人总是少了那么几分吸引力。但是,我们也不…

100年前没人信他,但他仅1项研究便远程摧毁万架飞机……

来源:世界科技创新论坛摘要:他是爱迪生最强大的对手,也是一个一生独立开发并取得专利700种,合作开发达1000种以上的科学狂人。科学界有一个普遍共识,人类历史上曾经存在过两个公认的旷世天才:达芬奇和尼古拉…

服务器安装opencv报错--libSM.so.6: cannot open shared ...+tensorflow 报错libcusolver.so.8.0: can not...

1.安装opencv出现以下错误: pip install opencv-contrib-python apt-get install -y python-qt4 apt-get install tk-dev python-tk 例如linux.zip.001, linux.zip.002, linux.zip.003... 首先 cat linux.zip* > linux.zip #合并为一个zip包 然后 unzip linu…

AlphaGo之后,DeepMind重磅推出AlphaFold:基因序列预测蛋白质结构

来源:机器之心摘要:Alphabet(谷歌)旗下公司 DeepMind 的人工智能 AlphaGo 曾在国际象棋、围棋等项目中取得了超越人类的表现,其研究不仅震惊世界,也两次登上 Nature。如今,该公司已将人工智能技…

李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司

来源:网易智能摘要:12月3日下午,创新工场在北京举办了2019投资趋势分享会。创新工场创始人、董事长兼CEO李开复,创新工场联合创始人、管理合伙人汪华与创新工场合伙人张鹰对目前中国经济形势和投资趋势做了分析。01最坏的时代将酝…

高斯混合模型做聚类

概述 聚类算法大多数采用相似度来判断,而相似度又大多数采用欧式距离长短来衡量,而GMM采用了新的判断依据—–概率,即通过属于某一类的概率大小来判断最终的归属类别 。 GMM的基本思想就是:任意形状的概率分布都可以用多个高斯分…

基于深度学习的NLP 32页最新进展综述,190篇参考文献

来源:专知摘要:深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果。最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展。在本文中,我们回顾了被广泛应用于各种NLP任务的深度学习相关模型和算法以及它们的发展演变过程。我们还总…

.net framework摘抄与理解

1."源码"编译成"托管模块": 2.将"托管模块"合并成"托管程序集" 3.clr中的"JIT"执行"托管程序集" 第二次执行已被JIT编译成机器码的Console.WriteLine("") 转载于:https://www.cnblogs.com/doujiaomifan…

“新一代人工智能前沿与挑战”国际研讨会专家观点分享

来源:西电人工智能学院摘要:2018年11月25日-26日举办的“新一代人工智能前沿与挑战”中青年论坛暨第二十一届学术周在西安电子科技大学圆满落幕,研讨会上包括长江学者、IEEE Fellow、领域顶尖中青年学者、新锐企业领导者等在内的国内外权威专…