微信公众号:计算机与网络安全
本书展示如何用Python程序将不同格式的数据处理和分析任务规模化和自动化。主要内容包括:Python基础知识介绍、CSV文件和Excel文件读写、数据库的操作、示例程序演示、图表的创建,等等。本书适合数据分析与处理工作相关人员。如果您经常做数据处理工作,就一定会为学习编程而兴奋。学习编程的一个好处是,您可以完成那些靠手工难以完成或者根本不可能完成的数据处理与分析工作。可能您已经遇到了这样的问题:需要处理的文件包含太多数据,以至于打开文件都非常困难或者根本不可行。即使打开了这些文件,手动处理也会花费大量时间,并且极易出错,因为您对数据进行的任何修改都需要很长时间才能更新,而且面对如此多的数据,进行修改时很容易漏掉某一行或某一列。您可能还遇到了其他情况,如需要处理大量的文件,以至于手动处理根本不可能完成。有些时候,您需要的数据来自于几十、几百甚至上千个文件。当所需的
文件数量不断增加时,手动处理会变得越来越困难。在以上所有这些情况之下,写一个Python脚本来处理文件就可以解决你的问题,因为Python脚本可以快速有效地处理大型文件和大批量的文件。学习编程的另一个好处是,您可以自动地重复数据处理和数据分析过程。在很多情况下,我们针对数据做的都是耗时的重复性工作。例如,一般的数据管理过程是,先从客户或供应商处获取数据,然后提取并保留所需的数据,之后还可能会进行一些数据转换或重新格式化,最后将数据保存到数据库或数据仓库中[这就是数据科学家熟知的数据ETL(extract、transform、load,即抽取、转换和加载)过程]。类似地,典型的数据分析过程包括数据获取、数据准备、数据分析和结果展示。在数据管理和数据分析过程中,一旦建立了流程,就可以编写Python代码来进行各种操作。通过创建Python脚本来执行操作,您可以将耗时的重复性工作简化为执行一个脚本,并用节省下来的时间去做其他更有意义的工作。最重要的是,在进行数据处理和数据分析时,使用Python脚本代替手动操作可以减小出错的可能性。手动进行数据处理时,非常可能出现复制粘贴错误或输入错误。导致出错的原因有很多:您可能因过于匆忙而忽略了错误,或者有些事导致您分心了,或者仅是因为您太累了。而且,当您处理大型文件或大批量的文件,或者进行重复性操作时,出错的可能性会更大。相反,Python脚本从来不会分心或疲劳。一旦您调试好脚本,确认它可以按照您的期望处理数据,它就会一如既往、不知疲倦地工作下去。最后,学习编程非常有趣,而且能提高自身能力。只要熟悉了基本的语法,您就会非常乐于找到所需的语言功能,然后将它们组合在一起,以完成整体的数据分析目标。至于代码和语法,网上有许多示例可以教会您如何使用专门的功能来完成特定的任务。不过,这些示例虽能提供帮助,但是您需要通过自己的创造力和解决问题的能力来弄清楚如何修改这些代码,以使它们满足您的实际需要。找到合适的代码,并想办法让它们为您工作,这是个非常有意思的过程。此外,学习编程能极大地提高自身的能力。举个例子,考虑一下我前面提到过的情况,即要处理大型文件和大批量文件。如果不会编程,那么您要么需要花费大量时间,要么束手无策。一旦学会了编程,您就可以通过Python脚本轻松愉快地解决所有问题。有些数据处理和数据分析任务以前是非常困难或根本不可能完成的,但是现在您都可以轻松搞定,这会使您充满信心,能量爆棚,从而积极主动地寻找更多的机会,使用Python来迎接数据处理方面的挑战。▼
(全文略)




第1章 Python基础:这一章介绍如何创建和运行Python脚本。该章的重点在于Python的基本语法和元素,您需要了解它们,才能学习后面的章节。例如,讨论像数值和字符串这样的基本数据类型,以及如何对它们进行操作;介绍主要的数据容器(列表、元组和字典),以及使用它们存储和操作数据的方法;介绍如何处理日期型数据,因为商业分析中经常出现日期。另外,还会讨论一些编程概念,比如控制流、函数和异常,它们是在编码中体现业务逻辑以及优雅地进行错误处理的重要元素。最后将介绍如何使计算机读入一个和多个
文本文件,并且写回到CSV格式的输出文件中。这些技术对于访问输入数据和保存特定的输出数据都是非常重要的,后续章节会更深入地讨论这些问题。
第2章 CSV 文件:这一章介绍如何读写CSV文件。首先介绍在不使用Python内置的csv模块情况下“手
动”解析CSV格式的输入文件的一个例子。随后说明这种解析方法的潜在问题,并通过一个示例说明使用Python的csv模块解析CSV文件如何能避免这些问题。然后讨论如何使用3种不同类型的条件逻辑从输入文件中筛选出特定的行,将它们写入CSV格式的输出文件。接着给出两种不同的方法,以筛选出特定的列,并将它们写入输出文件。在介绍了如何读取和解析单个CSV格式的输入文件后,进一步讨论如何读取和处理多个CSV文件。这一节中的示例包括为每个输入文件提供摘要信息,从多个输入文件中连接数据,以及为每个输入文件计算基本的统计量。这一章最后将介绍两个不太常用的过程示例,包括选择一组连续的行和为数据集添加标题行。
第3章 Excel文件:这一章讨论如何使用可下载的扩展模块xlrd读取Excel工作簿。首先介绍一个Excel工作簿示例(也就是说明工作簿中包含多少个工作表,每个工作表的名称,每个工作表中行与列的数量)。因为 Excel将日期保存为数值型数据,所以下一节介绍如何使用一系列函数将日期格式化,以使它们显示为日期形式而不是数值形式。然后,讨论如何使用3种不同类型的条件逻辑从单个工作表中筛选出特定的行,再将它们写入CSV格式的输出文件。在此之后,介绍两种不同的方式来筛选特定的列并写入输出文件。在介绍了如何读取和解析单个工作表之后,进一步讨论如何读取和处理工作簿中所有的或者一部分工作表。这几节中的示例程序展示了如何在工作表中筛选特定的行与列。在讨论了如何读取和分析单个工作簿中的任意数目的工作表之后,进一步讨论如何读取和处理多个工作簿。这一节中的示例程序包括为每个工作簿提供摘要信息,从多个工作簿中连接数据,以及为每个工作簿计算基本的统计量。这一章最后将介绍两个不太常用的过程示例,包括选择一组连续的行和为数据集添加标题行。
第4章 数据库:这一章讨论如何在Python中执行基本的数据库操作。首先介绍如何使用Python内建的sqlite3模块,这样wqin您就不需要安装任何额外的软件了。示例程序说明了如何执行最常用的数据库操作,包括创建数据库和数据表,从CSV格式的输入文件加载数据到数据库中的表,使用CSV格式的输入文件更新数据表中的记录,以及查询数据表。使用sqlite3模块时,数据库连接的细节和与MySQL、PostgreSQL和Oracle等其他数据库系统连接有轻微的差别。为了说明这种差别,这一章的第二部分演示了如何同MySQL数据库系统进行交互。如果您的计算机上没有MySQL,那么需要先下载并安装。然后,具体操作的示例程序与sqlite3示例相对照,也包括创建数据库和数据表,从CSV格式的输入文件加载数据到数据库中的表,使用CSV格式的输入文件更新数据表中的记录,查询数据表,以及将查询结果写入CSV格式的输出文件。这一章两部分的示例合在一起,可以详细又完整地说明如何使用Python执行常用的数据库操作。
第5章 应用程序:这一章包含3个示例程序,演示了如何综合使用前面几章介绍的技术解决3个不同的问题,它们代表了一些常见的数据处理与分析任务。第一个应用程序介绍了如何在大量的Excel与CSV文件中找到特定的记录。可以想象,用计算机查询记录比手动查询要高效得多,也有趣得多。打开、搜索和关闭大量文件绝对不是一件有趣的事情,文件的数量越多,完成任务的难度就越大。因为这个问题涉及搜索CSV和Excel文件,所以示例程序会使用第2章和第3章中介绍的很多内容。
第二个应用程序介绍如何将数据通过分组或“装箱”划分到一个唯一的类别,并且为每个类别计算统计量。具体的例子就是对一个记录客户服务包购买的CSV 文件[记录了客户在什么时间购买了特定的服务包(也就是铜牌服务包、银牌服务包和金牌服务包)]进行解析,然后将数据按客户姓名和服务包进行组织,通过相加计算出每个客户在每种服务包上花费的时间。这个示例使用了两个内建模块,创建了一个函数并将数据存储在字典中。字典在第1章中进行了介绍,但在第2章、第3章和第4章中都没有使用过。这个程序还引入了一种新的技术:记录下您刚处理过的行和正在处理的行,然后根据这两行的值计算出统计量。这两种技术(通过字典来分组或装箱数据,以及记录当前行和前一行)都非常强大,让您能够处理很多和时间相关的数据分析任务。
第三个应用程序介绍如何解析文本文件,将数据分组或装箱划分类别,然后按类别计算统计量。具体的例子是解析MySQL错误日志文件,按照日期和错误信息组织数据,然后计算出每种错误信息在每一天出现的次数。这个示例回顾了如何解析文本文件,这种技术在
第1章中简要介绍过。这个示例也展示了如何将信息分别存储在列表和字典中,以用来创建输出文件的标题行和数据行;它还可以帮您回忆一下通过基本字符串操作来解析文本文件的方法。同时,这也是使用嵌套字典来分组或装箱数据以划分类别的一个绝好示例。
第6章 图与图表:在这一章中,您要学习如何使用Python创建常用的统计图和图表。您将使用4个制
图库:matplotlib、pandas、ggplot和seaborn。首先使用matplotlib,因为它历史悠久、资料丰富(实际上,pandas和seaborn都是在matplotlib的基础上开发出来的)。matplotlib一节介绍如何创建直方图、条形图、折线图、散点图和箱线图。pandas一节讨论使用pandas简化语法来创建这些统计图的几种方式,并演示如何使用pandas创
建统计图。ggplot一节指出了这个库与R和图形语法在历史上的联系,并演示如何使用ggplot创建常用的统计图。最后,seaborn一节讨论如何创建标准统计图,以及如何创建使用matplotlib难以创建的图表。
第7章 描述性统计与建模:这一章讨论如何生成标准摘要统计量,以及如何使用pandas和statsmodels包估计回归模型与分类模型。pandas中有计算集中趋势测度(例如:均值、中位数和众数)的函数,也有计算分散程度(例如:方差和标准差)的函数,还有进行数据分组的函数用于轻松计算这些统计量。statsmodels包中的函数可以估计多种类型的回归和分类模型。这一章介绍了如何基于pandas数据框中的数据建立多元线性回归和逻辑斯蒂分类模型,
以及如何使用模型为新的输入数据预测输出值。
第8章 按计划自动运行脚本:这一章介绍如何在Windows和macOS系统上安排脚本定期自动运行。在这一章之前,脚本都是通过命令行方式手动运行的。在调试脚本和临时运行时,通过命令行手动运行脚本是非常方便的。但是,如果脚本需要定期运行(例如:每天、每周、每月或每个季度),或者需要定期运行很多脚本的话,手动运行就会非常麻烦。在Windows系统中,您可以创建任务计划来定期自动运行脚本。在macOS系统中,您需要创建定时任务,
它可以实现同样的功能。这一章用若干屏幕截图展示了如何创建和运行任务计划和定时任务。通过安排脚本定期运行,您就不会忘记运行脚本,而且能够实现比通过命令行手动运行脚本更强大的功能。
第9章 从这里启航:最后一章介绍Python中其他的内置和扩展模块以及函数,它们对于数据处理与数据分析任务也是非常重要的。这一章还介绍了其他的数据结构。当您涉及本书之外的主题时,可能会遇到一些非常复杂的编程问题,而使用这些数据结构可以帮助您高效地解决问题。内置模块与函数是与Python安装程序捆绑在一起的,所以当您安装了Python之后,立刻就可以使用它们了。这一章讨论的内置模块包括collections、random、statistics、itertools和operator,内置函数包括enumerate、filter、reduce和zip。扩展模块没有包括在Python安装程序中,所以需要您单独下载并安装。这一章讨论的扩展模块包括NumPy、SciPy和Scikit-Learn;另外还简单介绍了栈、队列、树和图等其他数据结构,来帮助您更加快速和高效地存储、处理和分析数据。
办理公众号VIP会员,在公众号会话窗口回复:VIP 可查看相关介绍。
▲
- The end -
