要进一步学习Python并提高你的Python编程技能,不仅要掌握Python基本语法和常用数据分析库,比如pandas、matplotlib、seaborn库等,还需要不断的实践来提个自己的Python应用技能,以此来提高你的Python技能。
提高Python数据分析实践技能的方法多种多样,根据作者多年应用Python进行数据分析的经验,可以分别从工作应用、书籍自学、数据社区这几个方面进行实践,相信通过这些途径来提高你的Python技能,一定能让你有所收获。

在工作中应用Python进行数据分析是提高实践技能的有效途径,并且,借助Python可以解决实际的工作问题,提高你的问题解决和工作效率,从而提升Python的技能应用。
在日常工作中,我们经常需要从各种来源获取和整理信息,PDF文档作为一种常见的信息载体,如何从PDF中批量提取所需信息并将其导入Excel,却是一个让人头疼的问题,比如下面需要批量提取PDF信息存为Excel,然后做统计分析。
某公司的食品采购合同如下,共计100份PDF合同,现需要提取合同中的“合同编号、甲方、乙方、品名、采购数量、采购单价、总价”这几个字段数据, 并将其保存为Excel文档,使用Python几行代码即可搞定。

首先,使用PyPDF2打开PDF文档,然后,循环遍历合同中的每一页信息,将遍历出来的信息打印出来,可以看到具体的字段信息内容。
import re import pandas as pd import PyPDF2 # 打开PDF文件 with open(r'D:\系统桌面(勿删)\Desktop\PDF文件合并.pdf', 'rb') as file: reader = PyPDF2.PdfFileReader(file) num_pages = reader.numPages # 通过每一页提取信息 info = [] for page_num in range(num_pages): page = reader.getPage(page_num) text = page.extractText() print(text)
接下来使用正则表达式,将需要提取的字段信息数据使用append函数合并起来,合并起来的数据为一个字典类型数据,pd.DataFrame() 可以将字典数据保存为二维数据,df.to_excel导出为Excel形式的数据。
import re import pandas as pd import PyPDF2 # 打开PDF文件 with open(r'D:\系统桌面(勿删)\Desktop\PDF文件合并.pdf', 'rb') as file: reader = PyPDF2.PdfFileReader(file) num_pages = reader.numPages # 通过每一页提取信息 info = [] for page_num in range(num_pages): page = reader.getPage(page_num) text = page.extractText() # 使用正则表达式匹配所需信息 HT_No = re.findall(r'合同编号:\s*(.*)', text) name1 = re.findall(r'甲方:\s*(.*)', text) name2 = re.findall(r'乙方:\s*(.*)', text) catege = re.findall(r'品名:\s*(.*)', text) weight = re.findall(r'采购数量(斤):\s*(.*)', text) price = re.findall(r'采购单价(元 /斤):\s*(.*)', text) price_sum = re.findall(r'总价(元):\s*(.*)', text) # 将信息添加到列表中 info.append({'合同编号': HT_No[0] if HT_No else '', '甲方': name1[0] if name1 else '', '乙方': name2[0] if name2 else '', '品名': catege[0] if catege else '', '采购数量': weight[0] if weight else '', '采购单价': price[0] if price else '', '总价': price_sum[0] if price_sum else ''} ) # 将信息保存为Excel文件 df = pd.DataFrame(info) df.to_excel(r'D:\系统桌面(勿删)\Desktop\数据提取.xlsx', index=False)
通过阅读相关的Python数据分析书籍,可以系统地学习数据分析基本知识,通过学习书籍中的案例和示例代码,加深对Python知识的理解和掌握,逐步提升自己的Python技能。
以《Python编程快速上手》这本书为例,该书不仅介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能,每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识,附录部分提供了所有习题的解答。

比如,下面的实践项目是关于Excel数据操作的内容,需要使用Python代码来完成,在案例的前文都有相关的Python知识学习,对应的在每章的末尾布置实践项目习题,通过对习题的问题解决,刚好可以锻炼我们的Python应用技能。

创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel 电子表格中创建一个N×N 的乘法表,使用Python可实现乘法表的创建。
import argparse import openpyxl def create_multiplication_table(n): # 创建一个新的Excel工作簿 workbook = openpyxl.Workbook() sheet = workbook.active # 设置表头 for i in range(1, n + 1): sheet.cell(row=1, column=i, value=i) # 填充乘法表 for i in range(2, n + 1): for j in range(1, n + 1): sheet.cell(row=i, column=j, value=i * j) # 保存工作簿到文件 workbook.save("multiplication_table.xlsx") if __name__ == "__main__": # 解析命令行参数 parser = argparse.ArgumentParser(description="创建一个N×N的乘法表") parser.add_argument("n", type=int, help="乘法表的大小") args = parser.parse_args() # 创建乘法表 create_multiplication_table(args.n)3.数据社区实践数据分析社区里面有许多开源的Python数据集和代码库用于练习,并且,可以与众多数据分析爱好者交流和学习,通过在社区中解决案例问题,从而锻炼自己的Python数据分析技能,下面推荐几个比较实用的数据社区。
3.1 kaggle
一个全球性的数据竞赛平台,也是学习和交流数据技术的好地方,在这里,你可以找到很多公开的数据集和Python代码,帮助你学习和练习Python,相信这些练习会对你的Python技能有所提升。

在kaggle里面点击Datasets数据集,可以看到有各行各业的数据集,这部分数据集比较贴切实际的业务场景,可用于Python数据分析。

在Code代码这个项目下,拥有多个开源的代码库,比如常用的Python、R等,借助这些代码库的学习,可以加深对Python的应用和实践。

3.2 阿里云天池
这是阿里云创办的数据竞赛平台,类似于国内的Kaggle。它非常适合中国的数据分析爱好者,提供了许多与Python相关的课程和数据应用案例,你可以用这些案例数据来练习和提升你的Python技能。

在阿里云天池里面的数据集,同样,包含各行各业的数据集,与kaggle区别的是,阿里云天池里面的数据集多为国内应用数据,数据理解起来较为友好。

对于不同的案例数据,均可以使用Python进行分析和研究,通过对问题的理解、分析和解决,在实践过程中逐步提升Python数据分析能力。

3.3 和鲸社区
这是一个数据科学的开源社区,帮助大家交流和学习数据科学。很多人在这里分享他们的代码、数据集和案例,比较常见的开源代码有Python、R等,你可以用这些资源来快速提升你的数据科学技能。

和鲸社区里面包含的数据集均是比较新颖和热点的数据集,紧跟时下,比如,这里的“杭州第19届亚运会奖牌榜及奖牌明细数据集”就是近期比较热门的应用数据集。

与其他数据社区不同的是,和鲸社区支持Python代码在线运行,该功能极大方便我们写Python代码,点击在线分析即可使用该功能,更加方便Python的应用。

提高Python数据分析技能需要不断地工作应用、书籍自学和数据社区实践,只有不断地深入学习和应用,才能不断提升自己的Python技能和编程能力,通过不断积累经验和扩展你的知识,你将逐渐成为一个熟练的Python程序员。