阅读文本大概需要 5 分钟。

前言

基础写了八篇,以后会继续学,一定会完成零基础机器学习计划,从今天开始柠檬会跟着一起写Python进阶,用小项目来带着大家一起学习Python。

读取Excel中的数据

因为导师最近需要我完成一个任务就是将十多个Excel中的十多个矩阵表用函数把AHP(层次分析法)权重矩阵算出来,所以需要用Python实现读取Excel中数据和将数据(权重矩阵)存到Excel中的两个功能,然后柠檬就将自己写的代码整理出来跟大家一起学习一下。

导包

如图,首先我们需要导入两个包:xlwt和wlrd。见名思意,xlwt是xls write的意思,也就是用来往Excel文件中写数据的包,另外一个是read的意思,也就是用来从Excel中读取数据的包。导入了这两个包以后我们就可以实现将数据从Excel表中读取出来处理完以后再写入另外一个Excel表中了。

读取Excel表中数据的主要代码

如上图,这就是把数据从Excel表中读取出来所需的全部代码了,是不是很简单?其实如果只需要实现读取功能是不需要这么多代码的,只是柠檬懒了一下,把测试导师任务时创建的test发上来了,其实这样也可以让大家感受到原汁原味的项目代码,手动狗头。

虽然柠檬是有注释和代码洁癖的猿,注释已经写得很清晰了,但还是跟大家解释一下代码的意思吧,首先我们用open_excel方法将Excel表打开,函数只用传入一个参数也就是Excel的名字就行。然后用sheet_by_name()方法来获取我们需要去获取数据的Sheet,也就是我们俗称的工作表,也是传入工作表名称就行。之后用一个for循环,一行一行的的读取数据然后用append()方法传入我们在上面建好的list中就行了。下面给大家演示下实现的效果。

从Excel中读取的list

柠檬这次的任务是从很多Excel表中读取每个Sheet中的矩阵,然后通过函数作AHP处理,求出矩阵的特征值和特征向量,最后将每个Sheet中算出来的最大特征值和特征向量都存在一个新的Excel表中的新的Sheet中,虽然步骤有点多,但在柠檬以两根头发为代价的条件下,什么都不是事,下面给大家演示如何往Excel表中写数据。

使用Python往Excel中写数据

刚才我们已经说明了写数据需要导入的包:xlwt,现在就可以直接写了还是先给大家看柠檬写的代码。

创建一个book,后面会用到

还是跟read数据一样,因为是项目驱动,所以里面会带点其他的东西,因为柠檬需要一次性读十多个Sheet,也需要一次性写十多个Sheet,所以柠檬在这里用了一个for循环,sheet_num是读取的Excel表中的Sheet数量,对应我要写的数量,下面就是真正写数据的代码。

写数据

我们可以看到,真正用来写数据的代码其实也就两行,这段代码的意思是如果检验合格(AHP检验一致性)的话,就将权重矩阵写到Excel中,如果没有通过的话,就将“一致性不合格"这句话写入Excel中。

最后用save()方法将Excel保存即可,传入一个参数,就是我们需要保存的Excel的名字,一定要以.xls结尾,这是office的Excel的默认格式,下面是实现的效果截图。

每隔Sheet中都有对应的数据

总结

今天我们一起学习了如何用Python读取Excel中的数据和往Excel中写数据,Python之所以这么强大就是因为它有各种各样强大的库支持,如我们今天使用的xlwt和xlrd,让我们一起用Python优雅的板砖吧!