提交 ac6f483b 编写于 作者: W wizardforcel

2020-07-14 18:12:07

上级 2b50ee9b
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
在本书中,您将深入学习 Pandas,这是一个 Python 库,用于处理,转换和分析数据。 这是用于探索性数据可视化的流行框架,这是一种基于数据集和数据管道的属性分析数据的方法。 在本书中,您将深入学习 Pandas,这是一个 Python 库,用于处理,转换和分析数据。 这是用于探索性数据可视化的流行框架,这是一种基于数据集和数据管道的属性分析数据的方法。
这本书将是您使用 Pandas 探索数据集的实用指南。 您将首先设置 Python,pandas 和 Jupyter Notebook。 您将学习如何使用 Jupyter Notebook 运行 Python 代码。 然后,我们将向您展示如何将数据导入 Pandas 并进行一些探索性分析。 您将学习如何使用 pandas 方法操作和重塑数据。 您还将学习如何处理数据集中缺失的数据,如何使用 pandas 和 Matplotlib 绘制图表和图,以及如何为受众创建有效的可视化效果。 最后,我们将教您如何从 Pandas 中获取数据并转换为多种流行的文件格式,从而总结您新获得的 Pandas 知识。 这本书将是您使用 Pandas 探索数据集的实用指南。 您将首先设置 Python,pandas 和 Jupyter 笔记本。 您将学习如何使用 Jupyter 笔记本运行 Python 代码。 然后,我们将向您展示如何将数据导入 Pandas 并进行一些探索性分析。 您将学习如何使用 pandas 方法操作和重塑数据。 您还将学习如何处理数据集中缺失的数据,如何使用 pandas 和 Matplotlib 绘制图表和图,以及如何为受众创建有效的可视化效果。 最后,我们将教您如何从 Pandas 中获取数据并转换为多种流行的文件格式,从而总结您新获得的 Pandas 知识。
# 这本书是给谁的 # 这本书是给谁的
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
第 1 章,“处理不同类型的数据集”教您有关从 CSV 文件和 Excel 文件读取数据时使用高级选项的知识。 第 1 章,“处理不同类型的数据集”教您有关从 CSV 文件和 Excel 文件读取数据时使用高级选项的知识。
第 2 章,“数据选择”,介绍如何使用 Pandas 系列数据结构选择数据。 您还将学习如何从 pandas DataFrames 中排序和过滤数据,以及如何更改 pandas 系列中的数据类型。 第 2 章,“数据选择”,介绍如何使用 Pandas 系列数据结构选择数据。 您还将学习如何从 Pandas 数据帧中排序和过滤数据,以及如何更改 pandas 系列中的数据类型。
第 3 章,“操纵,转换和重塑数据”探索如何修改 Pandas DataFrame。 您还将学习如何使用`GroupBy`方法,如何处理缺失值以及如何为 pandas DataFrames 中的方法建立索引。 本章还将教您如何使用日期和时间数据,以及如何将函数应用于 pandas 系列或 DataFrames 第 3 章,“操纵,转换和重塑数据”探索如何修改 Pandas 数据帧。 您还将学习如何使用`GroupBy`方法,如何处理缺失值以及如何为 Pandas 数据帧中的方法建立索引。 本章还将教您如何使用日期和时间数据,以及如何将函数应用于 pandas 系列或数据帧
第 4 章,“像专家一样可视化数据”,将向您展示如何控制的绘图美学,包括如何为绘图选择颜色。 您还将学习如何绘制分类数据并掌握数据感知网格的绘制方法。 第 4 章,“像专家一样可视化数据”,将向您展示如何控制的绘图美学,包括如何为绘图选择颜色。 您还将学习如何绘制分类数据并掌握数据感知网格的绘制方法。
......
# 处理不同种类的数据集 # 处理不同种类的数据集
在本章中,我们将学习如何在 Pandas 中使用不同种类的数据集格式。 我们将学习如何使用 Pandas 导入的 CSV 文件提供的高级选项。 我们还将研究如何在 Pandas 中使用 Excel 文件,以及如何使用`read_excel`方法的高级选项。 我们将探讨其他一些使用流行数据格式的 Pandas 方法,例如 HTML,JSON,PICKLE 文件,SQL 等。 在本章中,我们将学习如何在 Pandas 中使用不同种类的数据集格式。 我们将学习如何使用 Pandas 导入的 CSV 文件提供的高级选项。 我们还将研究如何在 Pandas 中使用 Excel 文件,以及如何使用`read_excel`方法的高级选项。 我们将探讨其他一些使用流行数据格式的 Pandas 方法,例如 HTML,JSON,PKL 文件,SQL 等。
# 从 CSV 文件读取数据时使用高级选项 # 从 CSV 文件读取数据时使用高级选项
在本部分中,我们将[CSV]和结合使用,并学习如何[Pandas] CSV 数据集以及 高级选项:`read_csv`方法 在本部分中,我们将 CSV 和 Pandas 结合使用,并学习如何使用`read_csv`方法读取 CSV 数据集以及高级选项
# 导入模块 # 导入模块
...@@ -21,7 +21,7 @@ df = pd.read_csv('IMDB.csv', encoding = "ISO-8859-1") ...@@ -21,7 +21,7 @@ df = pd.read_csv('IMDB.csv', encoding = "ISO-8859-1")
df.head() df.head()
``` ```
为了执行基本导入,请将数据集的文件名传递给`read_csv`,并将结果 DataFrame 分配给变量。 在以下屏幕截图中,我们可以看到 Pandas 已将数据集转换为表格格式: 为了执行基本导入,请将数据集的文件名传递给`read_csv`,并将结果数据帧分配给变量。 在以下屏幕截图中,我们可以看到 Pandas 已将数据集转换为表格格式:
![](img/cfe3ed2e-29c2-480d-8033-c65564c39388.png) ![](img/cfe3ed2e-29c2-480d-8033-c65564c39388.png)
...@@ -71,7 +71,7 @@ df.head() ...@@ -71,7 +71,7 @@ df.head()
# 选择要读取的列的子集 # 选择要读取的列的子集
我们还可以选择读取 CSV 文件中特定列的子集。 为此,我们将列名作为列表传递,以使用 columns 选项,如下所示: 我们还可以选择读取 CSV 文件中特定列的子集。 为此,我们将列名作为列表传递,以使用`columns`选项,如下所示:
```py ```py
df = pd.read_csv('IMDB.csv', encoding = "ISO-8859-1", usecols=['Title', 'Genre1']) df = pd.read_csv('IMDB.csv', encoding = "ISO-8859-1", usecols=['Title', 'Genre1'])
...@@ -118,7 +118,7 @@ df.head() ...@@ -118,7 +118,7 @@ df.head()
# 从文件的页脚或结尾跳过行 # 从文件的页脚或结尾跳过行
要从页脚或文件末尾跳过行,请使用`skipfooter`选项并传递一个数字,该数字指定要跳过的行数。 在以下代码中,我们通过了`2`。 如我们所见,在跳过最后两行之后,我们创建的上一个 DataFrame 与我们创建的 DataFrame 之间存在差异: 要从页脚或文件末尾跳过行,请使用`skipfooter`选项并传递一个数字,该数字指定要跳过的行数。 在以下代码中,我们通过了`2`。 如我们所见,在跳过最后两行之后,我们创建的上一个数据帧与我们创建的数据帧之间存在差异:
```py ```py
df.tail(2) df.tail(2)
...@@ -141,11 +141,11 @@ df.shape ...@@ -141,11 +141,11 @@ df.shape
# 从 Excel 文件读取数据 # 从 Excel 文件读取数据
在本节中,我们将学习如何使用 Pandas 使用 Excel 数据来处理 ork,以及如何使用 Pandas 的`read_excel`方法从 Excel 文件中读取数据。 我们将阅读并探索一个真实的 Excel 数据集,并使用 xplore 解析一些可用于解析 Excel 数据的高级选项。 在本节中,我们将学习如何使用 Pandas 使用 Excel 数据来处理表格,以及如何使用 Pandas 的`read_excel`方法从 Excel 文件中读取数据。 我们将阅读并探索一个真实的 Excel 数据集,并使用 xplore 解析一些可用于解析 Excel 数据的高级选项。
熊猫内部使用 Python Excel 库`rd`从 Excel 文件中提取数据。 我们可以通过执行`conda install xlrd`来安装它。 熊猫内部使用 Python Excel 库`rd`从 Excel 文件中提取数据。 我们可以通过执行`conda install xlrd`来安装它。
首先,请确保命令行程序在安装前以 admin 模式运行,如以下屏幕截图所示: 首先,请确保命令行程序在安装前以管理员模式运行,如以下屏幕截图所示:
![](img/aa1344e7-c572-4fdf-add1-89fc1e472e84.png) ![](img/aa1344e7-c572-4fdf-add1-89fc1e472e84.png)
...@@ -157,7 +157,7 @@ df.shape ...@@ -157,7 +157,7 @@ df.shape
# 基本的 Excel 阅读 # 基本的 Excel 阅读
我们正在使用 Pandas 的`read_excel`方法读取此数据。 以最简单的格式,我们只是将想要的 Excel 数据集的文件名传递给`read_excel`方法。 pandas 将 Excel 文件中的数据转换为 pandas DataFrame 。 Pandas 内部为此使用 Excel `rd`库。 在这里,Pandas 已读取数据并在内存中创建了表格数据对象,我们可以在我们的代码中访问,浏览和操作,如以下代码所示: 我们正在使用 Pandas 的`read_excel`方法读取此数据。 以最简单的格式,我们只是将想要的 Excel 数据集的文件名传递给`read_excel`方法。 pandas 将 Excel 文件中的数据转换为 Pandas 数据帧。 Pandas 内部为此使用 Excel `rd`库。 在这里,Pandas 已读取数据并在内存中创建了表格数据对象,我们可以在我们的代码中访问,浏览和操作,如以下代码所示:
```py ```py
df = pd.read_excel('IMDB.xlsx') df = pd.read_excel('IMDB.xlsx')
...@@ -199,7 +199,7 @@ xls_file = pd.ExcelFile('IMDB.xlsx') ...@@ -199,7 +199,7 @@ xls_file = pd.ExcelFile('IMDB.xlsx')
xls_file.sheet_names xls_file.sheet_names
``` ```
接下来,我们在之前创建的 Excel 文件对象上调用`parse`方法,并传入我们想要读取的工作表名称。 然后我们将结果分配给两个单独的 DataFrame 对象,如下所示: 接下来,我们在之前创建的 Excel 文件对象上调用`parse`方法,并传入我们想要读取的工作表名称。 然后我们将结果分配给两个单独的数据帧对象,如下所示:
```py ```py
df1 = xls_file.parse('movies') df1 = xls_file.parse('movies')
...@@ -207,7 +207,7 @@ df2 = xls_file.parse('by genre') ...@@ -207,7 +207,7 @@ df2 = xls_file.parse('by genre')
df1.head() df1.head()
``` ```
现在,我们从两个单独的 DataFrame ,中的两个工作表中获取数据,如以下屏幕截图所示: 现在,我们从两个单独的数据帧,中的两个工作表中获取数据,如以下屏幕截图所示:
![](img/51df758b-0331-47f7-9f5a-d53195e29b7f.png) ![](img/51df758b-0331-47f7-9f5a-d53195e29b7f.png)
...@@ -303,7 +303,7 @@ df = pd.read_excel('IMDB.xlsx', sheetname= 0, na_values=[' ']) ...@@ -303,7 +303,7 @@ df = pd.read_excel('IMDB.xlsx', sheetname= 0, na_values=[' '])
# 读取其他流行格式的数据 # 读取其他流行格式的数据
在本节中,我们将探索 Pandas 的功能,以读取和使用各种流行的数据格式。 我们还将学习 h 以便从 JSON 格式,HTML 文件和 PICKLE 数据集中读取数据,以及 h 可以从基于 SQL 的数据库中读取数据。 在本节中,我们将探索 Pandas 的功能,以读取和使用各种流行的数据格式。 我们还将学习如何从 JSON 格式,HTML 文件和 PICKLE 数据集中读取数据,并且可以从基于 SQL 的数据库中读取数据。
# 读取 JSON 文件 # 读取 JSON 文件
...@@ -313,9 +313,9 @@ JSON 是用于结构化数据的最小可读格式。 它主要用于在服务 ...@@ -313,9 +313,9 @@ JSON 是用于结构化数据的最小可读格式。 它主要用于在服务
# 将 JSON 数据读入 Pandas # 将 JSON 数据读入 Pandas
为了读取 JSON 数据,pandas 提供了一种名为`read_json`的方法,其中我们传递了要读取的 JSON 数据文件的文件名和位置。 文件位置可以是本地文件,甚至可以是具有有效 URL 方案的 Internet。 我们将结果 DataFrame 分配给变量`DF` 为了读取 JSON 数据,pandas 提供了一种名为`read_json`的方法,其中我们传递了要读取的 JSON 数据文件的文件名和位置。 文件位置可以是本地文件,甚至可以是具有有效 URL 方案的互联网。 我们将结果数据帧分配给变量`DF`
`read_json`方法读取 JSON 数据并将其转换为 pandas DataFrame 对象,即表格数据格式,如以下代码所示。 JSON 数据现在可以以 DataFrame 格式轻松访问,可以更轻松地进行操作和浏览: `read_json`方法读取 JSON 数据并将其转换为 Pandas 数据帧对象,即表格数据格式,如以下代码所示。 JSON 数据现在可以以数据帧格式轻松访问,可以更轻松地进行操作和浏览:
```py ```py
movies_json = pd.read_json('IMDB.json') movies_json = pd.read_json('IMDB.json')
...@@ -332,11 +332,11 @@ pandas 内部使用`lxml` Python 模块读取 HTML 数据。 您可以通过执 ...@@ -332,11 +332,11 @@ pandas 内部使用`lxml` Python 模块读取 HTML 数据。 您可以通过执
![](img/7b60aa19-d51d-43a7-bd80-bd26473a7a62.png) ![](img/7b60aa19-d51d-43a7-bd80-bd26473a7a62.png)
我们还可以从本地文件甚至直接从 Internet 导入 HTML 数据: 我们还可以从本地文件甚至直接从互联网导入 HTML 数据:
![](img/5ef932a6-3683-46dd-ac95-62d223a07840.png) ![](img/5ef932a6-3683-46dd-ac95-62d223a07840.png)
在这里,我们将 HTML 文件或 URL 的位置传递给`read_html`方法。`read_html`从 HTML 提取表格数据,然后将其转换为 Pandas DataFrame 。 在以下代码中,我们以表格格式获取了从 HTML 文件提取的数据: 在这里,我们将 HTML 文件或 URL 的位置传递给`read_html`方法。`read_html`从 HTML 提取表格数据,然后将其转换为 Pandas 数据帧。 在以下代码中,我们以表格格式获取了从 HTML 文件提取的数据:
```py ```py
pd.read_html('IMDB.html') pd.read_html('IMDB.html')
...@@ -350,7 +350,7 @@ pd.read_html('IMDB.html') ...@@ -350,7 +350,7 @@ pd.read_html('IMDB.html')
酸洗是将任何类型的 Python 对象(包括列表,字典等)转换为字符串的一种方式。 这个想法是,该字符串包含在另一个 Python 脚本中重构对象所需的所有信息。 酸洗是将任何类型的 Python 对象(包括列表,字典等)转换为字符串的一种方式。 这个想法是,该字符串包含在另一个 Python 脚本中重构对象所需的所有信息。
我们使用`read_pickle`方法读取我们的 PICKLE 文件,如以下代码所示。 与其他数据格式一样,Pandas 根据读取的数据创建 DataFrame 我们使用`read_pickle`方法读取我们的 PICKLE 文件,如以下代码所示。 与其他数据格式一样,Pandas 根据读取的数据创建数据帧
```py ```py
df = pd.read_pickle('IMDB.p') df = pd.read_pickle('IMDB.p')
...@@ -383,7 +383,7 @@ df = pd.read_sql_query("SELECT * FROM IMDB;", conn) ...@@ -383,7 +383,7 @@ df = pd.read_sql_query("SELECT * FROM IMDB;", conn)
df.head() df.head()
``` ```
接下来,使用`read_sql_query`方法将您想要数据来自的 SQL 查询传递给 Pandas。 该方法读取数据并创建一个 DataFrame 对象,如以下屏幕快照所示: 接下来,使用`read_sql_query`方法将您想要数据来自的 SQL 查询传递给 Pandas。 该方法读取数据并创建一个数据帧对象,如以下屏幕快照所示:
![](img/32c75475-e20d-444a-8ea0-6ecfa43181f7.png) ![](img/32c75475-e20d-444a-8ea0-6ecfa43181f7.png)
...@@ -391,18 +391,18 @@ df.head() ...@@ -391,18 +391,18 @@ df.head()
# 从剪贴板读取数据 # 从剪贴板读取数据
要从剪贴板读取数据,请先复制一些数据。 在以下示例中,我们从 movie 数据集中复制了一个表: 要从剪贴板读取数据,请先复制一些数据。 在以下示例中,我们从电影数据集中复制了一个表:
![](img/977c5f6c-2735-454e-8c8e-a9800074f7ed.png) ![](img/977c5f6c-2735-454e-8c8e-a9800074f7ed.png)
接下来,使用 pandas 的`read_clipboard`方法读取数据并创建一个 DataFrame ,如下所示: 接下来,使用 pandas 的`read_clipboard`方法读取数据并创建一个数据帧,如下所示:
```py ```py
df = pd.read_clipboard() df = pd.read_clipboard()
df.head() df.head()
``` ```
从网页复制的数据现在作为 DataFrame 存储在内存中,如以下屏幕截图所示。 在将数据快速导入 Pandas 时,此方法非常方便: 从网页复制的数据现在作为数据帧存储在内存中,如以下屏幕截图所示。 在将数据快速导入 Pandas 时,此方法非常方便:
![](img/90b4fbce-54bd-483c-909f-055ceb2efdd8.png) ![](img/90b4fbce-54bd-483c-909f-055ceb2efdd8.png)
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
特别是,我们将涵盖以下主题: 特别是,我们将涵盖以下主题:
* 如何开始 Seaborn * 如何开始 Seaborn
* 海生的特征 * Seaborn 的特性
* 绘制不同类型的地块 * 绘制不同类型的地块
* 用 seaborn 绘制分类图 * 用 seaborn 绘制分类图
* 使用数据感知网格进行绘图 * 使用数据感知网格进行绘图
# 控制情节美学 # 控制绘图美学
在本节中,我们将学习如何使用 seaborn 绘图库来控制绘图美学。 我们将学习如何安装 seaborn 并开始使用 seaborn,以及我们需要导入的模型。 我们将探索一些海洋绘图方法来绘制几种不同类型的绘图。 我们还将看到如何使用各种 seaborn 方法和属性来控制和更改地块美观性。 在本节中,我们将学习如何使用 seaborn 绘图库来控制绘图美学。 我们将学习如何安装 seaborn 并开始使用 seaborn,以及我们需要导入的模型。 我们将探索一些海洋绘图方法来绘制几种不同类型的绘图。 我们还将看到如何使用各种 seaborn 方法和属性来控制和更改地块美观性。
...@@ -29,7 +29,7 @@ from matplotlib import pyplot as plt ...@@ -29,7 +29,7 @@ from matplotlib import pyplot as plt
import seaborn as sns import seaborn as sns
``` ```
我们需要导入 Pandas 的 Matplotlib 和 seaborn 模块。 我们正在使用 Matplotlib 的 inline magic 命令来确保我们的绘图连同代码一起正确显示在 Jupyter Notebook 中。 我们需要导入 Pandas 的 Matplotlib 和 seaborn 模块。 我们正在使用 Matplotlib 的 inline magic 命令来确保我们的绘图连同代码一起正确显示在 Jupyter 笔记本中。
接下来,我们使用 pandas 和以下命令读取数据集: 接下来,我们使用 pandas 和以下命令读取数据集:
...@@ -40,7 +40,7 @@ df.head() ...@@ -40,7 +40,7 @@ df.head()
我们的数据集是 CSV 文件。 它由各个国家的酒精消费数据组成。 [该数据可通过这里获得](https://github.com/fivethirtyeight/data/tree/master/alcohol-consumption) 我们的数据集是 CSV 文件。 它由各个国家的酒精消费数据组成。 [该数据可通过这里获得](https://github.com/fivethirtyeight/data/tree/master/alcohol-consumption)
# 我们与 seaborn 的第一个情节 # 我们的第一个 seaborn 绘图
在本节中,我们将仅使用一个变量来创建分布图,如下所示: 在本节中,我们将仅使用一个变量来创建分布图,如下所示:
...@@ -54,9 +54,9 @@ sns.distplot(df.beer_servings) ...@@ -54,9 +54,9 @@ sns.distplot(df.beer_servings)
此单行显示了 seaborn 库的强大功能和简单性。 此单行显示了 seaborn 库的强大功能和简单性。
# 使用 set_style 更改绘图样式 # 使用`set_style`更改绘图样式
现在是时候让 Seaborn 改变情节美学了。 在此过程中,我们还将探索许多不同的地块类型,可以使用 seaborn 进行绘制。 现在是时候让 Seaborn 改变绘图美学了。 在此过程中,我们还将探索许多不同的地块类型,可以使用 seaborn 进行绘制。
# 将绘图背景设置为白色网格 # 将绘图背景设置为白色网格
...@@ -68,11 +68,11 @@ sns.set_style("whitegrid") ...@@ -68,11 +68,11 @@ sns.set_style("whitegrid")
sns.lmplot(x='beer_servings', y='wine_servings', data=df); sns.lmplot(x='beer_servings', y='wine_servings', data=df);
``` ```
Seaborn 提供了一种称为`set_style`的方法,我们将其称为`whitegrid`作为参数。 然后,我们调用绘图方法来绘制散点图。 我们正在使用 seaborn 的`lmplot`方法。 然后,我们从数据集中传递两个列名称为`x``y`,并将 data 参数设置为我们的 pandas DataFrame。 现在,我们应该有一个带有白色网格背景的散点图,如以下屏幕截图所示: Seaborn 提供了一种称为`set_style`的方法,我们将其称为`whitegrid`作为参数。 然后,我们调用绘图方法来绘制散点图。 我们正在使用 seaborn 的`lmplot`方法。 然后,我们从数据集中传递两个列名称为`x``y`,并将 data 参数设置为我们的 Pandas 数据帧。 现在,我们应该有一个带有白色网格背景的散点图,如以下屏幕截图所示:
![](img/2be5dce7-fead-49cb-8a24-3b4d67d0e26f.png) ![](img/2be5dce7-fead-49cb-8a24-3b4d67d0e26f.png)
# 将情节背景设置为黑暗 # 将绘图背景设置为黑暗
现在我们将研究如何将绘图背景设置为`dark`并且没有网格。 为此,我们使用以下命令将样式设置为`dark` 现在我们将研究如何将绘图背景设置为`dark`并且没有网格。 为此,我们使用以下命令将样式设置为`dark`
...@@ -82,7 +82,7 @@ sns.set_style("dark") ...@@ -82,7 +82,7 @@ sns.set_style("dark")
sns.lmplot(x='beer_servings', y='wine_servings', data=df, fit_reg=False); sns.lmplot(x='beer_servings', y='wine_servings', data=df, fit_reg=False);
``` ```
您可能已经注意到,我们在开始时还有另一行代码`sns.set()`。 通过调用此命令,我们在进行任何更改之前将情节美感重置为默认值。 我们这样做是为了确保我们之前所做的更改不会影响我们的总体规划,如下所示: 您可能已经注意到,我们在开始时还有另一行代码`sns.set()`。 通过调用此命令,我们在进行任何更改之前将绘图美感重置为默认值。 我们这样做是为了确保我们之前所做的更改不会影响我们的总体规划,如下所示:
![](img/be86bd8c-0185-4aca-aecc-f8d634c11527.png) ![](img/be86bd8c-0185-4aca-aecc-f8d634c11527.png)
...@@ -190,7 +190,7 @@ sns.lmplot(x='beer_servings', y='wine_servings', data=df); ...@@ -190,7 +190,7 @@ sns.lmplot(x='beer_servings', y='wine_servings', data=df);
在本节中,我们将学习使用调色板自定义 seaborn 中的地块颜色。 我们将探索 seaborn 和 Matplotlib 提供的一些调色板。 我们将学习如何通过设置不同的调色板来更改绘图的颜色,并且还将学习如何使用自定义颜色创建自己的调色板。 在本节中,我们将学习使用调色板自定义 seaborn 中的地块颜色。 我们将探索 seaborn 和 Matplotlib 提供的一些调色板。 我们将学习如何通过设置不同的调色板来更改绘图的颜色,并且还将学习如何使用自定义颜色创建自己的调色板。
首先,使用以下代码导入 Jupyter Notebook 中所需的模块: 首先,使用以下代码导入 Jupyter 笔记本中所需的模块:
```py ```py
import pandas as pd import pandas as pd
...@@ -328,7 +328,7 @@ sns.boxplot(data=df); ...@@ -328,7 +328,7 @@ sns.boxplot(data=df);
在本节中,我们将了解 seaborn 支持的各种分类图以及如何绘制它们。 我们将演示如何绘制包括散点图,实线图,箱形图,条形图等的图。 我们还将学习如何绘制宽形的分类图。 在本节中,我们将了解 seaborn 支持的各种分类图以及如何绘制它们。 我们将演示如何绘制包括散点图,实线图,箱形图,条形图等的图。 我们还将学习如何绘制宽形的分类图。
让我们开始使用以下代码在 Jupyter Notebook 中导入我们的 pandas 模块: 让我们开始使用以下代码在 Jupyter 笔记本中导入我们的 pandas 模块:
```py ```py
import pandas as pd import pandas as pd
...@@ -348,7 +348,7 @@ df.head() ...@@ -348,7 +348,7 @@ df.head()
![](img/03f9d858-76e1-4341-826c-319fa7ffebe1.png) ![](img/03f9d858-76e1-4341-826c-319fa7ffebe1.png)
前面的数据集包含每个《辛普森一家》情节的发行日期,收视率数字,评分以及一系列其他观察结果。 前面的数据集包含每个《辛普森一家》绘图的发行日期,收视率数字,评分以及一系列其他观察结果。
# 散点图 # 散点图
...@@ -362,7 +362,7 @@ sns.stripplot(x="season", y="us_viewers_in_millions", data=df); ...@@ -362,7 +362,7 @@ sns.stripplot(x="season", y="us_viewers_in_millions", data=df);
![](img/2674856c-cac5-4a03-a251-4a593d215195.png) ![](img/2674856c-cac5-4a03-a251-4a593d215195.png)
在这里,我们使用了 Seaborn 的`stripplot`方法。 我们在 *x* 轴上绘制了季节编号,并在 *y* 轴上绘制了以百万计的美国观众。 我们还指定了使用的 DataFrame 的名称。 在这里,我们使用了 Seaborn 的`stripplot`方法。 我们在 *x* 轴上绘制了季节编号,并在 *y* 轴上绘制了以百万计的美国观众。 我们还指定了使用的数据帧的名称。
# 群图 # 群图
...@@ -390,7 +390,7 @@ sns.boxplot(x="season", y="us_viewers_in_millions", data=df); ...@@ -390,7 +390,7 @@ sns.boxplot(x="season", y="us_viewers_in_millions", data=df);
![](img/184e947e-d097-4f38-bd17-ac28855b2b81.png) ![](img/184e947e-d097-4f38-bd17-ac28855b2b81.png)
# 小提琴情节 # 小提琴绘图
使用`violinplot()`方法创建小提琴图,如下所示: 使用`violinplot()`方法创建小提琴图,如下所示:
...@@ -456,7 +456,7 @@ sns.boxplot(data=df, orient="h"); ...@@ -456,7 +456,7 @@ sns.boxplot(data=df, orient="h");
在本节中,我们将学习在数据集的不同子集上绘制同一图的多个实例。 我们将学习使用 seaborn 的`FacetGrid`方法进行网格绘图。 我们还将探索 seaborn 的`PairGrid``PairPlot`方法进行网格绘图。 在本节中,我们将学习在数据集的不同子集上绘制同一图的多个实例。 我们将学习使用 seaborn 的`FacetGrid`方法进行网格绘图。 我们还将探索 seaborn 的`PairGrid``PairPlot`方法进行网格绘图。
让我们从下面的代码在 Jupyter Notebook 中导入 Python 模块开始: 让我们从下面的代码在 Jupyter 笔记本中导入 Python 模块开始:
```py ```py
import pandas as pd import pandas as pd
...@@ -490,11 +490,11 @@ g.add_legend(); ...@@ -490,11 +490,11 @@ g.add_legend();
![](img/d8dd3a1e-bc48-44b1-bbd7-749484b4852e.png) ![](img/d8dd3a1e-bc48-44b1-bbd7-749484b4852e.png)
在这里,我们已经使用`FacetGrid`方法绘制了男性和女性乘客的两个并排直方图。 这种并排显示有助于我们比较按年龄划分的男女乘客的存活率。 为了进行绘制,我们首先使用`FacetGrid`方法创建了一个网格。 然后,我们将数据集的 DataFrame 列传递为`Sex`,将`hue`传递为`Survived`**色相**代表情节的深度。 然后,这创建了带有两个分别用于男性和女性乘客的地块的网格。 然后我们在网格上调用`map`方法并传递了`plt.hist``Age`参数,它们绘制了我们的两个直方图。 最后,我们使用`add_legend`方法添加了图例。 在这里,我们已经使用`FacetGrid`方法绘制了男性和女性乘客的两个并排直方图。 这种并排显示有助于我们比较按年龄划分的男女乘客的存活率。 为了进行绘制,我们首先使用`FacetGrid`方法创建了一个网格。 然后,我们将数据集的数据帧列传递为`Sex`,将`hue`传递为`Survived`**色相**代表绘图的深度。 然后,这创建了带有两个分别用于男性和女性乘客的地块的网格。 然后我们在网格上调用`map`方法并传递了`plt.hist``Age`参数,它们绘制了我们的两个直方图。 最后,我们使用`add_legend`方法添加了图例。
# 使用`PairGrid()`方法进行绘图 # 使用`PairGrid()`方法进行绘图
现在让我们看看如何使用`PairGrid`方法绘制可识别网格的图。 我们正在为此使用 MLB 播放器数据集,如以下代码所示: 现在让我们看看如何使用`PairGrid`方法绘制可识别网格的图。 我们正在为此使用 MLB 球员数据集,如以下代码所示:
```py ```py
mlb = pd.read_csv('data-mlb-players.csv') mlb = pd.read_csv('data-mlb-players.csv')
...@@ -515,7 +515,7 @@ g.map(plt.scatter); ...@@ -515,7 +515,7 @@ g.map(plt.scatter);
g.add_legend(); g.add_legend();
``` ```
在这里,我们已经传递了 MLB 球员的数据集,并将`vars`设置为包含球员的`Height``Weight`的列表。 然后我们将`hue`设置为`Position`。 然后我们在此网格上使用`scatterplot`方法调用`map`。 最后,我们添加了图例,该图例提供了一个 2 x 2 网格,其中包括身高和体重曲线的所有组合,如以下屏幕截图所示: 在这里,我们已经传递了 MLB 球员的数据集,并将`vars`设置为包含球员的`Height``Weight`的列表。 然后我们将`hue`设置为`Position`。 然后我们在此网格上使用`scatterplot`方法调用`map`。 最后,我们添加了图例,该图例提供了一个`2 x 2`网格,其中包括身高和体重曲线的所有组合,如以下屏幕截图所示:
![](img/71249b13-c74e-429e-b3a2-1e6e08dbbfeb.png) ![](img/71249b13-c74e-429e-b3a2-1e6e08dbbfeb.png)
...@@ -529,7 +529,7 @@ g.add_legend(); ...@@ -529,7 +529,7 @@ g.add_legend();
sns.pairplot(mlb, hue="Position", size=2.5); sns.pairplot(mlb, hue="Position", size=2.5);
``` ```
前面的命令为我们提供了 3 x 3 网格中的多图。 这是因为我们对每个位置都有三个观察值或列,如以下屏幕截图所示: 前面的命令为我们提供了`3 x 3`网格中的多图。 这是因为我们对每个位置都有三个观察值或列,如以下屏幕截图所示:
![](img/8a95ca98-79fa-4bc7-a54a-0f00a453ab12.png) ![](img/8a95ca98-79fa-4bc7-a54a-0f00a453ab12.png)
...@@ -537,4 +537,4 @@ sns.pairplot(mlb, hue="Position", size=2.5); ...@@ -537,4 +537,4 @@ sns.pairplot(mlb, hue="Position", size=2.5);
# 摘要 # 摘要
在本章中,我们了解了使用 Seaborn 的数据可视化库进行数据可视化的高级技术。 我们学习了如何开始 seaborn,然后探索了其中的一些功能,包括如何控制情节的美感,如何选择情节的颜色等等。 我们学习了如何绘制几种不同类型的图,以及如何使用 seaborn 绘制分类数据。 最后,我们学习了如何使用数据感知网格来创建图。 在本章中,我们了解了使用 Seaborn 的数据可视化库进行数据可视化的高级技术。 我们学习了如何开始 seaborn,然后探索了其中的一些功能,包括如何控制绘图的美感,如何选择绘图的颜色等等。 我们学习了如何绘制几种不同类型的图,以及如何使用 seaborn 绘制分类数据。 最后,我们学习了如何使用数据感知网格来创建图。
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册