深入浅出Pandas:利用Python进行数据处理与分析
上QQ阅读APP看书,第一时间看更新

前言

近年来,国内掀起了一股学习Python的热潮。作为一名互联网产品经理,我也不能免俗。凭借不错的学习能力,我很快就入了门,但接下来,用Python来干什么却成了问题,我因此迷茫了很久。后来我做数据相关的产品,经常要涉及数据采集、数据处理、数据分析等工作,总算有了相契合的使用场景。使用Python的时间越长,对Python的强大功能的体会就越深,于是我又把它推广到了团队。

这段从入门到实践的Python学习之旅也引发我思考:我们学习Python是在学什么?虽然听说Python什么都能做,但我发现,普通学习者在学习了Python的语法、数据类型、流程控制、函数、类等内容后,还是不知道Python能解决什么问题。

于是,我找到Python在全社会最常见、最广泛的使用场景,那就是收集数据、处理Excel表格、做数据分析,简单来说就是代替Excel的复杂操作,实现高效办公。而Pandas正是解决这方面问题的专业数据科学库。Pandas既能完成上述这些基础操作,又能在数据建模、机器学习等更高层次的领域发挥重要作用。

所以,对于Python的初学者,我都建议直接学Pandas,因为一来它能应对上述真实需求,学完就能解决问题;二来随着学习的深入,你会发现不论哪个领域都需要一个数据结构来承载数据,而Pandas提供的Series和DataFrame结构正好解决了这个问题。

读者对象

如同Python在诸多领域有广泛应用一样,Pandas处理的是数据问题,同样在各行各业都能展现其魅力,因此本书没有预设读者的行业和职业。阅读本书需要掌握一点Python的语法、数据结构和函数方面的基础知识,不过零基础的读者也完全可以理解本书的内容,本书会介绍Python环境的安装和Python的数据结构,方便初学者入门学习。阅读本书也不需要有专业的线性代数和概率统计学知识,只需具备基础的数学知识即可。

不过,还是强烈推荐以下人群阅读本书:

  • Excel中度、重度使用者,如文秘、公关人员、教师,从事行政、人力资源、市场和销售等工作的人员;
  • 数据分析师、商业分析师、数据科学家;
  • 互联网运营人员、数据运营人员;
  • 互联网产品经理、项目经理;
  • 开发人员、测试人员、算法人员;
  • 财务、会计、金融从业者;
  • 企业决策者、管理人员。

本书特色

不同于市面上众多由开发人员编写的Python图书,本书作者非技术人员出身,更能从用户体验角度入手解决学习者的痛点。本书有以下特色:

  • 专注于介绍Pandas;
  • 非技术思维,语言通俗易懂,面向应用;
  • 不需要相关背景知识,不引入Python的高级用法;
  • 减少变量的传递,代码短小精练;
  • 覆盖知识全,几乎囊括了Pandas的所有函数和方法;
  • 较少使用专业技术名词及统计学知识;
  • 案例使用极简数据集,方便理解;
  • 使用了流行的链式方法,代码简洁,逻辑清晰,可读性强;
  • 有大量的实用案例。

为了减少篇幅,书中未展示部分不必要的输出结果,读者可自行执行代码查看结果。本书没有一一介绍一些方法的不重要参数,对有些同时适用于DataFrame和Series的方法也未重复介绍,读者可参考Pandas官方文档进一步学习。除了常规的系统学习外,还可以将本书作为工具书,在日常操作中随手查阅。本书也可作为技能培训教材,在教学中使用。

如何阅读本书

使用Pandas是一项技能,需要多动手实践才能熟练掌握。因此,阅读本书最好的方法是紧跟书中的思路,对照书中的代码,自己输入电脑中运行,然后在工作和生活中发现应用场景,去解决实际问题。同时建议将本书所有的方法都过一遍,以了解各种工具的作用,这样遇到问题时心中才会有方案。最后,建议多看看Pandas官方文档,学会看API说明,如果有能力,可以看看源码的实现,让自己对Pandas的掌握更上一层楼。

本书共17章,分为七部分,全面介绍了如何利用Pandas进行数据处理和数据分析。

第一部分(第1~2章) Pandas入门

主要介绍了Python和Pandas是什么,它们有哪些数据结构和数据类型,以及Pandas开发环境的搭建,此外还介绍了Pandas的快速入门。

第二部分(第3~5章) Pandas数据分析基础

主要介绍了Pandas读取与输出数据、索引操作、数据类型转换、查询筛选、统计计算、排序、位移、数据修改、数据迭代、函数应用等内容。

第三部分(第6~9章) 数据形式变化

主要介绍了Pandas的分组聚合操作、合并操作、对比操作、数据透视、转置、归一化、标准化等,还包括利用多层索引对数据进行升降维处理。

第四部分(第10~12章) 数据清洗

主要介绍了缺失值和重复值的识别、删除、填充,数据的替换、格式转换,文本的提取、连接、匹配、切分、替换、格式化、虚拟变量化等,还介绍了分类数据的应用场景和操作方法。

第五部分(第13~14章) 时序数据分析

主要介绍了Pandas中对于时间类型数据的处理和分析,包括固定时间、时长、周期、时间偏移等的表示方法、查询、计算、格式处理,以及时区转换、重采样、工作日和工作时间的处理方法。本部分还讲解了在时序数据处理中经常使用的窗口计算。

第六部分(第15~16章) 可视化

主要介绍了Pandas的样式功能如何让数据表格更有表现力,Pandas的绘图功能如何让数据自己说话,如何定义不同类型的数据图形,以及如何对图形中的线条、颜色、字体、背景等进行细节处理。

第七部分(第17章) 实战案例

介绍了从需求到代码的思考过程,如何利用链式编程思想提高代码编写和数据分析效率,以及数据分析的基本方法与需要掌握的数据分析工具和技术栈。本部分还从数据处理和数据分析两个角度给出了大量的应用案例及代码详解。

勘误和支持

由于作者的水平有限,加之时间仓促,书中难免存在一些错误或不准确的地方,恳请读者批评指正。如果你在阅读中遇到问题,或者有与本书相关的建议或意见,欢迎发送邮件至yfc@hzbook.com,也可以关注公众号“盖若”进行交流。期待你的反馈。

本书配套资源及部分源码存放在gairuo.com/p/pandas上,欢迎有需要的读者前往下载。

致谢

感谢Pandas及其社区的贡献者为我们提供了这么优秀的生产力工具。

感谢家人、朋友以及为本书建言献策的网友,他们给了我莫大的鼓励和支持。

感谢父母给了我生命,教我学习的方法,鼓励我勇于探索自己未知的领域。

感谢机械工业出版社华章公司编辑杨福川和罗词亮为本书的出版所付出的努力。

在本书写作过程中,我请教了很多数据产品专家和数据分析专家,在此一并表示感谢。