
1.1 Python数据分析的优势
未来是人工智能、大数据的时代,而Python在数据分析方面有着得天独厚的优势,能够大幅提高工作效率。因此,学习Python数据分析对未来的工作会有很大的帮助。
1.1.1 为什么用Python处理Excel数据
为什么要用Python处理Excel数据?工作中,大家经常会使用Excel去处理数据,但是如果结合Python程序,可以达到更高效解决问题的效果。比如用Python按一定规律处理Excel中的数据,然后写入新的Excel文件中,汇总来自多个文件的内容到一个Excel中等。
平时,在工作中遇到比较烦琐的数据需要写入Excel中时,运用Python处理,会将费时费力的工作简单化。平时需要一天或几天完成的工作,运用Python会很快处理完毕。
Python是非常好的数据分析工具,Python在处理数据方面有很多优势。比如Python能整理更大的数据集,能够更容易地实现自动分析,能够比较容易地建立复杂的机器学习模型。
总之,结合Python处理Excel数据可实现办公自动化,提高工作效率。
1.1.2 Python中哪些模块处理Excel数据最好用
Python中的模块也称为库,在Python中操作Excel的模块有不少,包括Pandas模块、xlwings模块、xlrd模块、xlwt模块、xlutils模块、openpyxl模块、xlsxwriter模块、win32com模块等。下面简单分析一下各个模块的特点。
1.Pandas模块
Pandas是Python的一个开源数据分析模块,可用于数据挖掘和数据分析,同时也提供数据清洗功能,可以说它是目前Python数据分析的必备工具之一。Pandas能够处理类似电子表格的数据,用于数据快速加载、操作、对齐、合并、数据预处理等。
Pandas通过对Excel文件的读写实现数据输入、输出,Pandas支持.xls和.xlsx格式文件的读写,支持只加载每个表的单一工作页。
2.xlwings模块
xlwings模块可以实现在Python中调用Excel,也可从Excel调用Python。xlwings模块支持.xls和.xlsx格式文件的读写,支持Excel操作,支持VBA,强大的转换器可以处理大部分数据类型。
3.xlrd模块
xlrd模块可以读取Excel文件,其对Excel文件的读取可以实现比较精细的控制。虽然现在使用Pandas模块读取和保存Excel文件往往更加方便快捷,但在某些场景下,依然需要xlrd这种更底层的模块来实现对Excel文件读取的控制。
xlrd模块支持.xls、.xlsx格式文件的读取,但不支持写信息。
4.xlwt模块
前面xlrd模块可以读取Excel文件,但不能写。而xlwt模块可以写、可以修改Excel文件,但不能读,且只支持.xls格式文件的写操作。
5.xlutils模块
xlutils也是一个处理Excel文件的模块,但它不能对Excel文件进行读和写的操作,但依赖于xlrd模块和xlwt模块。xlutils模块支持.xls格式文件,不支持.xlsx格式文件。
6.openpyxl模块
openpyxl模块可以对.xlsx格式的Excel文件进行读写操作,特点是读取快、写入慢,且不能操作.xls格式文件。
7.xlsxwriter模块
xlsxwriter模块支持多种Excel功能,可以写.xlsx格式的Excel文件,而且速度快、占用内存空间小,但不支持读或者修改现有的Excel文件。
8.win32com模块
win32com模块支持.xls、.xlsx格式的Excel文件的读、写和修改,读写速度快。但win32com模块存在于pywin32的模块中,自身没有完善的文档,使用起来不太方便。
表1-1所示为各个模块所支持的功能。
表1-1 处理Excel的模块比较

说明:√表示支持,×表示不支持。
9.分析总结
Pandas模块把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能的表现中规中矩。xlwings和win32com这两个模块都拥有很好的读写性能,强大的转换器可以处理大部分数据类型,同时,可以在程序运行时,在打开的Excel文件中进行实时操作,实现过程的可视化。另外,xlwings模块的数据结构转换器使其可以快速地为Excel文件添加二维数据结构,而不需要在Excel文件中重定位数据的行和列,因此笔者认为,从读写的便捷性来看,xlwings模块比较好用一些。