数据科学工具和技巧:使用Python、Pandas和Seaborn

数据科学和机器学习项目中,开发者和数据科学家花费大量时间寻找、清洗和组织数据集。本系列文章将介绍一些常见的数据清洗场景,包括:

  • 可视化“混乱”数据
  • 重塑数据集
  • 替换缺失值
  • 移除和修复不完整的行
  • 规范化数据类型
  • 合并数据集

将通过使用Python、Pandas和Seaborn在Jupyter Notebook中清洗一个示例零售店的混乱客户数据库来实现这些操作。这个七部分的系列将从混乱数据的初始阶段开始,将其清洗,并开发一组突出工作的可视化。

系列内容概览

  1. 介绍Jupyter和Pandas
  2. 将CSV和SQL数据加载到Pandas
  3. 在Pandas中纠正缺失数据
  4. Pandas中合并多个数据集
  5. 在Pandas DataFrame中清洗数据
  6. 在Pandas DataFrame中重塑数据
  7. 使用Seaborn和Pandas进行数据可视化

Pandas简介

Pandas是一个灵活、高性能、开源的Python库,专门为数据科学家提供数据结构和分析工具。

作为开发者,会发现Pandas就像是一个程序化的、没有GUI的Excel。当将数据导入Pandas时,将得到一个DataFrame对象,它将数据表示为一系列列和行——就像在Excel工作表中看到的那样。

这使得分析和清理数据集变得非常容易。执行诸如删除不符合某些条件的行、自动删除有太多缺失值的列或添加从现有列计算出的新列等操作通常可以通过一个函数调用来完成。

通过使用清晰、易于理解的Python来清洗和转换数据表,对于开发者来说,通常比通过复杂的内置Excel函数或编写自定义VBA代码要快得多,也更便携。

Jupyter Notebook简介

Jupyter是一个网络应用程序,充当数据科学项目的容器。它允许将数据、代码、可视化、文档等放入一个笔记本中。

如果是一个习惯于像Eclipse这样的IDE或像Visual Studio Code这样的文本编辑器的经验丰富的软件开发者,Jupyter可能会显得有些奇怪。

Jupyter本质上是Donald Knuth的“文学编程”的现代转世。文学编程旨在打破代码和自然语言之间的障碍。在典型的文学编程文件中,编程代码与用类似自然英语的语言描述代码功能的散文交织在一起。

这种方法对现代开发者来说可能听起来令人反感。毕竟,代码难道不应该足够清晰和自解释,不需要注释吗?

对于普通的、机械的代码来说,这可能是真的,其中很清楚发生了什么。但是当为数据科学和机器学习项目编写代码时,情况就不同了。在这些场景中,经常编写的代码将被更广泛的受众消费,包括数据科学家、业务分析师甚至经理。

在这些情况下,代码本身是不够的。即使读者理解代码,也必须添加散文来为代码提供上下文——帮助读者理解为什么要编写代码,以及代码是如何转换它导入的数据的。

Jupyter笔记本将文学编程提升到了一个新的水平。不仅可以轻松编写在散文和代码之间交替的文档,代码也是实时的并且可执行的。可以在文档内部运行代码并观察其输出。更好的是,拥有笔记本副本的同事可以编辑代码,重新运行它,并观察新的输出——所有这些都不需要离开笔记本。包含代码、散文和输出的笔记本看起来像这样:

不要只听话。可以在这里找到一个实时的、互动的、可编辑的在线Jupyter笔记本来实验。

如果这还不够,Jupyter使得在文档中嵌入图表和其他可视化变得容易。所以,例如,如果从数据库导入数据,转换它,然后想要轻松地共享结果,可以将数据输入到几个不同的可视化库中,它们生成的图表将直接出现在笔记本中。

甚至可以使用LaTeX或MathML嵌入Markdown、视频和数学方程。

最后但同样重要的是:Jupyter是语言不可知的。虽然Python是最常见的用例,但可以在笔记本中嵌入并运行许多编程语言。这些包括Julia、R,甚至是Java、C#和F#。如果是.NET开发者,Scott Hanselman为写了一篇关于Jupyter笔记本的很棒的介绍。

安装Jupyter和Pandas

现在(希望)对Jupyter和Pandas感到兴奋,将向展示开始的最简单的方法。

获取Jupyter、Pandas和将需要的其他库的最好方法是安装Anaconda。它是一个为数据科学预装了最流行库的Python发行版。这是使用Python进行数据科学并轻松上手的最简单方法之一。

知道Anaconda是一个超过400MB的大安装。虽然绝对可以单独安装Python、Jupyter和Pandas,但要相信这是安装一切的最简单方法,痛苦最小。此外,如果在完成这个系列后决定继续数据科学之旅,会发现Anaconda已经为需要的大部分工具做好了设置。

可以在Anaconda下载页面上找到适合操作系统的Anaconda包。按照下载和安装说明进行操作。安装完成后,将发现安装程序设置了一个名为Anaconda Navigator的应用程序。在Windows上,它将在开始菜单中。在MacOS上,它将在应用程序文件夹中。在Linux上,可以通过打开一个终端并运行以下命令来运行它:

anaconda-navigator

接下来,将启动自己的Jupyter笔记本。

使用Anaconda Navigator打开Jupyter笔记本并创建一个新笔记本。笔记本可以被认为是其他IDE所称项目的简化版本——正如上面发现的,它是一个包含代码、散文和多媒体的集合。

当第一次打开Jupyter笔记本时,会看到一个由In []组成的单行。这是一个代码单元。每个单元可以包含由笔记本内核运行的代码或要显示的信息。

每个笔记本都有一个关联的内核,这是用于编译笔记本内代码的运行时。默认情况下是Python,大多数情况下是使用的语言,但也可以使用许多其他语言。

还可以通过将代码下拉菜单切换到Markdown,将代码单元更改为文档行。

设置和导入库

需要注意的是,在单元格中设置和操作的项目在前面的单元格中是可用的。这允许在笔记本中分解代码,并保持项目更有组织。由于这种行为,通常在笔记本的第一个单元格中使用所有通用设置和库导入,这些将在笔记本中使用。

由于将使用一些特定的Python库来加载和操作数据,这些库已经包含在Anaconda产品套件中,让通过将它们导入到Jupyter笔记本中来设置它们,通过在第一个代码单元格中添加以下内容:

可以点击按钮将代码单元格添加到文档中。

一旦添加了代码单元格,将以下代码放入其中:

Python import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set(style="darkgrid")

如果将鼠标悬停在代码单元格旁边的方括号上,会看到一个播放按钮,可以让在单元格中运行代码。目前这不会做太多,因为只是导入了一些库,但别担心,很快就会有很多代码要运行。

正如看到的,导入了四个库:

  • Pandas,数据分析库
  • NumPy,Pandas的依赖项(不会直接使用这个)
  • Matplotlib,数据可视化
  • Seaborn,它为matplotlib添加了许多视觉改进

另外,最后一行为Seaborn设置了默认样式。让通过转到文件,另存为并输入文件路径来保存笔记本。值得注意的是,Jupyter将基于个人资料目录建立其文件系统。在Windows上,这是C:\Users\

了解了Pandas和Jupyter是什么,以及为什么要使用它们。

然后,学习了如何使用Anaconda设置自己的数据科学就绪开发环境。

最后,快速了解了如何使用Jupyter笔记本来设置基于Python的数据分析项目,并导入了一些Python库,包括Pandas用于数据结构和Seaborn用于数据可视化

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485