PyCharm Tutorials 开发工具

Jupyter、PyCharm 和披萨

您好!

您试过集成到 PyCharm 2019.2 中的 Jupyter Notebook 吗?

还没有?

那么我向您介绍一下吧!

在本文中,我们将使用 PyCharm 及其 Jupyter Notebook 集成来研究一些数据。

首先,当然,我们需要上述数据。每当我需要使用新数据集时,一般会转到 Kaggle,在这里肯定能找到一些有趣的东西。这次,一个名为 “披萨餐馆和他们卖的披萨” 吸引了我的注意。谁不爱吃披萨呢?我们分析一下这些披萨餐馆,试试从中学到一些东西。

由于此数据不属于我现有任何 PyCharm 项目的一部分,我将新建一个。
确保使用 PyCharm 专业版,社区版没有集成 Jupyter Notebook。

提示:在浏览器中使用 Jupyter notebook 时,我一般会新建多个临时 notebook 用于实验目的。

 为它们每个都新建一个 PyCharm 项目非常乏味,因此,可以只建一个项目用于这种实验。我喜欢事情井井有条,因此,一旦建好项目,我会在其中添加一些结构 – 一个数据文件夹,我把下载的数据集放到里面,还有另一个文件夹用于 notebook。

新建第一个 pizza.ipynb notebook 后,PyCharm 建议安装 Jupyter 包,并且在右上角提供其链接。

安装 Jupyter 包后,我们就准备好了!

大约 90% 的数据科学家在其 Jupyter notebooks 中首先做的事情是敲入 import pandas as pd。此时,PyCharm 会建议在此 venv 中安装 pandas,您只需一次点击即可做到:

安装好 pandas 后,我们可以从 csv 将数据读取到 pandas DataFrame:
df = pd.read_csv(“../data/Datafiniti_Pizza_Restaurants_and_the_Pizza_They_Sell_May19.csv”)

执行这个单元时,按下 Shift+Enter,或者点击单元旁边的间距中的绿色箭头图标。
初次运行单元时,PyCharm 会启动本地 Jupyter 服务器来执行其中的代码 – 无需从您的终端手动做这件事。

我们来熟悉一下数据。首先,我们要了解这个数据集的基本情况 – 有几行数据?有哪些列?数据长什么样子?

我怀疑这些数据只包含美国餐馆的信息。

 

为了证明这点,我们来计算国家 (country) 列的值:

正确,这个数据集只有美国这个国家,因此可以安全地删除 country 列。menus.currency 和 priceRangeCurrency 也是如此,这些值都是 – USD。我还删除了 menuPageURL,因为它对分析没有太大作用,key 也是,它只是重复了其他列的信息(国家、州、城市 (country, state, city) 等)。

另一项清理工作是将 province 列重命名为 states,因为这样在上下文中更有意义,而且为了提高可读性,我把 state 的首字母缩写更换为全名 states。

清理数据后,我们该如何规划它呢?我们人类更容易理解视觉呈现的信息。

首先,我们来看看这个数据集中最常见的披萨类型。

在这个前提下,使用 Matplotlib 将资料可视化为精美的馅饼很合适

哎呀,我的馅饼哪儿去了?为了显示它,我需要为 IPython 添加 %matplotlib inline 这个神奇的命令,当我做这件事的时候,我还要添加另一个神奇的命令,让 IPython 为视网膜屏幕渲染图形。

我可以将这些行加到同一个单元中并且再次运行,但我喜欢在 notebook 的一开始就定义这类神奇命令。可以使用 Cmd+[ (在 Windows 上是 Ctrl+Alt+Left)导航到 notebook 的开头。

 插入新单元就像敲入 #%% 一样简单(如果您喜欢使用快捷方式在当前单元上方插入一个单元,有这样的快捷方式!mac:Option+Shift+A,Windows:Alt+Shift+A)。现在只需添加神奇命令并且运行以下所有单元:

瞧!现在,我们知道最常见的是芝士披萨,紧随其后的是白披萨。

餐馆的情况如何?在数据集中有它们的地理位置,所以我们可以很容易地看到它们的位置。

每家餐馆都有一个惟一的 id,并且数据集中可以有多条记录,每条记录表示该餐馆菜单中的披萨。因此,要绘制餐馆而不是披萨,我们需要根据餐馆 id 来分组记录。

现在,我们可以在地图上绘制它们。对于地理绘图,我喜欢使用 plotly。确保使用最新版 plotly (4.0.0),让它在 PyCharm 中很好地渲染输出结果。

我们还可以从这份数据上了解什么?我们来试试稍微复杂点的东西。

看看哪个州的披萨餐馆最多。为了公平地比较,我们将按人头数(每 1000 个居民)比较餐馆。可以在 https://www.census.gov/ 获得美国人口数据和多个其他数据集。

赢家是…纽约!

可以想到一些可能用这个数据集来回答的问题,例如,哪个城市的蔬菜披萨餐馆最多/最便宜?或者最常见的披萨连锁店是哪家?

 如果您想研究这个数据集,并且回答这些或其他问题,可以到 kaggle 获得并且运行您自己的分析。

 

可以在 GitHub 找到本文所用 notebook。

如果您想用 PyCharm 试试,确保使用 PyCharm 2019.2 专业版

原文发表于2019年7月31日,作者Maria Khalusova

image description

Discover more