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

Discover more

网络研讨会视频:我是如何使用 PyCharm 阅读项目源码的

写代码也好一段时间了,总觉得自己遇到瓶颈吗?曾听过资深开发者说,阅读优秀项目的源码是提高水平的方法吗?但若没有阅读技巧且缺少工具辅助,阅读源码肯定是件苦差事。本次网路研讨会邀请到 Podcast 捕蛇者说 主播小白跟大家分享如何使用 PyCharm 做为源码阅读工具,以及他自己阅读项目源码的技巧。 (本视频已同步发表于 BiliBili) 主題分享 小白从 18 年开始接触 Python 至今约 2 年的时间,目前在大学导师的车联网公司工作,主要负责数据监控平台的搭建,后端使用 Python 及 Django 框架。小白提到其本科是机械而非计算机专业,因此初学编程时都是靠死记硬背,学习顺序也很混乱,加上网上许多教程质量不高,让他在学习过程中走了很多不必要的弯路,在学完基础后就遇到瓶颈。为了强化自己的知识,他以阅读知名项目的源码做为学习工具,从中了解别人是如何构思项目代码的。 不过阅读源码并不轻松,不仅文件多、代码行数也多,阅读起来很吃力。PyCharm 一直以来都是小白习惯使用的编程工具,安装好后默认配置可符合 Python 开发者的需求,可以省下手动配置的时间。小白首先分享他在使用 PyCharm 的前置设置,包括系统设置里的行为、字体及字体大小、针对 Python 代码语法高亮的调整,让 PyCharm 的动作更符合自己的偏好。接着小白再介绍了他在使用 PyCharm 阅读

网络研讨会:我是如何使用 PyCharm 阅读项目源码的

您或许会听到资深开发者说,阅读优秀项目的源码是提高自己水平的不二选择。不过,阅读源码不是件轻松的事,不仅文件多、代码行数也多,在没有工具辅助之下,阅读起来肯定很吃力。在阅读项目源码时,有没有什么好的工具或是技巧,可以让我们更高效的在代码间导航、提供能增进理解的信息? 本次 JetBrains 网络研讨会将于 10/22(四)21:00 举办,邀请到 Podcast 捕蛇者说主播小白跟大家分享使用 PyCharm 阅读项目源码的技巧。小白提到自己新手时期因为在项目经验和编码规范等方面相对来说比较匮乏。尽管看了很多文档类的东西但实际编程还是会写出一些个人“方言”。因此,他时常阅读一些知名且成熟的开源项目源码,并且尽可能的在阅读源码之后自己重新写一遍(大多数情况仅针对某一个模块)来加深记忆,从中学习并精进自己的技巧。 这次的分享里,小白会以知名 Python HTTP 库 Requests 中的部分源码为例,向大家介绍平时使用 PyCharm 阅读项目源码的技巧,包括如何查找想看的类、追踪调用函数、将一个模块下的全局变量列出等,让 PyCharm 成为阅读源码的最佳辅助。听完这场分享后,您将同时学习到阅读源码及 PyCharm 操作的技巧,成为更专业的开发者。 本次活动将以 Zoom 会议室直播,演示内容全程录影,并在会后上传视频供回放,相关材料也会发送至与会者邮箱。欢迎对 Pytho