最近总是被师兄叫去处理实验数据。但是每次时间都花在了怎么加载文件,写文件上面了。因而在此写成模块,总结一下,之后就可以只写处理数据部分的内容了。

有库的话直接拿去跑就可以了。没安装库的,需要先安装 pandas、xrld、xlwt、numpy库

加载excel或者csv文件为一个矩阵的功能,各自单独写了一个函数。可以根据自己的需要修改。

函数功能汇总:
加载excel文件为矩阵
加载csv文件为矩阵
在当前列表中加载所有的csv、excel文件
创建result文件夹
将得到的矩阵结果写入excel文件

加载其它文件为矩阵,也可以在这个基础上进行扩展。自动搜索当前文件夹中的文件进行处理。

当前的业务部分是在main函数中标识出来了:
自动搜索当前文件夹中的csv文件或者是excel文件,将它们读取为两个矩阵。将它们相乘后,得到的矩阵输出为excel文件
由于只是两个矩阵相乘,所以只能,也必须是刚好两个文件夹,才会有结果。同时矩阵也要满足左边矩阵的列和右边矩阵的行相等这一基础规则才有结果。
自己也可以换成相加,相除等。

import pandas as pd
import numpy as npshuoming='自动搜索当前文件夹中的csv文件或者是excel文件,将它们读取为两个矩阵。将它们相乘后,得到的矩阵输出为excel文件\n由于只是两个矩阵相乘,所以只能,也必须是刚好两个文件夹,才会有结果。同时矩阵也要满足左边矩阵的列和右边矩阵的行相等这一基础规则才有结果'
print(shuoming)#这里是详细的各种文件的加载方式
def load_excel(path):data=[]data = pd.read_excel(path,header=None)data = data.values# print(data)return datadef load_csv(path):data=[]data_read = pd.read_csv(path,header=None)list = data_read.values.tolist()data = np.array(list)# print(data.shape)# print(data)return data#这里汇总加载不同的文件。拓展,把load具体的文件加上,再把这里的load加上。
#加载列表中的指定的文件
def load(path):pl=path.split('.')if pl[len(pl)-1]=='csv':data=load_csv(path)if pl[len(pl)-1]=='xlsx':data=load_excel(path)return data#这里保存为xlsx文件
def save(path,result):if not os.path.exists('result'):os.mkdir('result')path='./result/'+pathprint(path)writer = pd.ExcelWriter(path)df = pd.DataFrame(result)df.to_excel(writer,index=False,header=None) # float_format 控制精度writer.save()import os
def search_current_dir(t):a=os.listdir()file_name=[]for s in t:for j in a:temp=os.path.splitext(j)if temp[len(temp)-1]==s:file_name.append(j)print(file_name)return file_nameif __name__ == '__main__':filetype=['.csv','.xlsx']#约定加载文件的类型格式file_path=search_current_dir(filetype)matdata=[]for path in file_path:matdata.append(load(path))#主要的修改区域,业务区域    #当不清楚需求的时候,就是我全都要。两套方案都要写一遍。也不跟你约定太多了。这样各取所需。if matdata[0].shape[1]==matdata[1].shape[0]:str=file_path[0].split('.')[0]+'----'+file_path[1].split('.')[0]+'.xlsx'print(file_path[0]+'*'+file_path[1]+':')result=np.dot(matdata[0],matdata[1])save(str,result)if matdata[1].shape[1]==matdata[0].shape[0]:str=file_path[1].split('.')[0]+'----'+file_path[0].split('.')[0]+'.xlsx'print(file_path[1]+'*'+file_path[0]+':')result=np.dot(matdata[1],matdata[0])save(str,result)os.system('pause')#出现异常时,避免打包的exe文件闪退,看不到报错信息

运行结果:

将excel或是csv文件中的矩阵相乘,输出点乘后的excel文件相关推荐

  1. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  2. php 根据一个数据组的id 取得另一个数据组对应的名称,怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件...

    求教高手怎样从两个spss的数据文件中选出id相同的数据,合并成一个文件.谢谢.排序后用merge file操作,怎么原数据没有变化?output中提示这些 Renaming has created ...

  3. 1、第一列为姓名,第二列为语文成绩,第三列为数学成绩,编写一个程序,实现(1)按要求创建这样的文件 (2)读取文件中的信息并输出以下结果: ①分别求这个班数学和语文的平均分(保留1位小数)并输出

    3. 创建一个文件,内容如下: 林虹 95 98 张天天 85 85 朱莉 56 36 李乐乐 87 85 第一列为姓名,第二列为语文成绩,第三列为数学成绩,编写一个程序,实现: (1)按要求创建这样 ...

  4. 深入理解:cmd下java命令启动JVM运行class文件时,可以自动识别不同编码编译后的class文件并加之运行

    cmd下java命令启动JVM运行class文件时,可以自动识别不同编码编译后的class文件并加之运行 总结如下: 一:程序源代码以GBK格式保存时: 二:程序以源代码UTF-8无BOM格式保存时: ...

  5. matlab打开矩阵表,如何将Excel数据导入MATLAB中?:EXCLE中通过矩阵表输出选项

    怎么把matlab中处理的数据存入到excel中 可以直接xlswrite命令. data=randn(100,1); % data为需要存储的数 xlswrite('D:\write2Excel.x ...

  6. C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)

    PS:由于我是新手,因此记录的比较罗里吧嗦,本文也属于一个没有任何技术的编程积累. 在SLAM系统中,经常需要从配置文件中读取参数文件,读取整型,浮点型都是比较常见的操作,在读取矩阵卡了一下,记录一下 ...

  7. MATLAB将图像数据以txt文件保存以及从txt文件中读矩阵并显示图像

    网上这方面的分享挺多的,但是发现不怎么好用,下面介绍鄙人的方法 1.将一副灰度图像矩阵读入txt文件.如果你的图像是rgb的话用rgb2gray转成灰度的. 2.从txt文件中读数据到MATLAB并将 ...

  8. 多个文件中的数据处理,输出自己想要是数据

    测试数据: data.txt[需要处理的数据] China china American Apple Apples banana this it aa bb aaa does mean f s wha ...

  9. R从文件中读取数据,输出文件

    看了几天的书,终于到这一步了,说实话,用R来做统计,很少有人手动的去输入那些数字,肯定是从别的地方导入的,我们用来处理就可以了,所以到这里才算是真正的入门,前面都是做基础的练手. 我学习R从<R ...

  10. python3查找文件中指定字符串_Python3在指定路径下递归定位文件中出现的字符串...

    [本文出自天外归云的博客园] 脚本功能:在指定的路径下递归搜索,找出指定字符串在文件中出现的位置(行信息). 用到的python特性: 代码如下: import os import sys __all ...

最新文章

  1. webapi demo
  2. c++ 从文本中逐行读取,并按空格对读取的一行进行分割
  3. 如何将 AI 应用于高考?辽宁使用 AI 技术进行高考违规行为异常检测!
  4. 利用window.navigator.userAgent判断当前是否微信内置浏览器
  5. libevent 源码阅读 Ubuntu下muduo库的安装与使用
  6. android自定义属性dimen,android代码里的dimen
  7. Spring MVC测试框架入门–第1部分
  8. Java(五)异常处理,异常参数,自定义异常,嵌套异常
  9. php 旋转图片 保存,如何在PHP中旋转并保存图像
  10. 开源一个ReactNative日历控件
  11. 新冠感染池检测选取最优池检测人数(概率模型理论公式+蒙特卡洛matlab仿真)
  12. ubuntu下打开.chm文件的方法(比如交换机参考手册)
  13. ubuntu 12.04 源码安装 Xen 4.2
  14. 解决在嵌入式平台上无法进行字符编码的问题
  15. 车载ECU软件刷新flash driver制作
  16. 【论文】论文中的参考文献:国标GB/T 7714-2015文献类型与格式
  17. linux系统下复制粘贴不了怎么办,电脑复制粘贴不了怎么解决?三种解决办法 了解一下...
  18. lookup无序查找_查找引用之王——Lookup函数实用技巧解读!
  19. 网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)
  20. html改变按钮形状6,6个HTML5/CSS3按钮悬停边界旋绕动画

热门文章

  1. html使用iframe包含pdf文件,react项目利用iframe显示pdf文件并打印
  2. java smslib rxtx_SMSLIB+RXTX 短信猫开发模块
  3. python实现PDF文件合并成一个文件
  4. 新北京交通限行时间、尾号查询
  5. 微信小程序图片上传至mysql数据库
  6. 全面了解决策管理平台
  7. 等保2.0.第十章.等保2.0三级解决方案(上)
  8. thinkphp5.0.20 数据库迁移/填充
  9. ios定位权限plist_[译] iOS 请求定位权限
  10. 微信小程序——组件库