Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第二章 开发环境)
Excel Python:飞速搞定数据分析与处理

第一部分 Python 入门
第二章 开发环境
先安装好 Anaconda Python 发行版。除了安装 Python,Anaconda 还会安装 Anaconda Prompt 和 Jupyter 笔记本。它们是贯穿本书的两种关键工具。Anaconda Prompt 是一种特殊的命令提示符(用 Windows 的话来说)或者终端(用 macOS 的话来说),我们可以通过它来运行 Python 脚本和一些本书中会用到的命令行工具。Jupyter 笔记本让我们可以交互地处理数据、代码和图表,可以说它是 Excel 工作簿的强力竞争者。在体验了 Jupyter 笔记本之后,我们会安装一个强大的文本编辑器——Visual Studio Code(VS Code)。VS Code 内置了集成终端,用它来编写、执行和调试 Python 代码非常方便。

2.1 Anaconda Python发行版
2.1.2 Anaconda Prompt
Anaconda Prompt 实际上就是 Windows 中的一个命令提示符或者 macOS 中的终端,只不过它配置好了 Python 解释器和第三方包。Anaconda Prompt 是执行 Python 代码的最基本的工具,本书会大量使用它来执行 Python 脚本和各种包提供的命令行工具。

在 Windows 中,输入 dir 并按回车键。命令提示符会打印出当前所在目录的内容。
输入 cd Down 并按 tab 键。cd 代表切换目录。如果位于 home 文件夹中,那么 Anaconda Prompt 极有可能会将刚才输入的内容自动补全为 cd Downloads。

注意,如果路径以你当前所在目录中的文件夹名或文件名开始,那么你用的就是相对路径,比如 cd Downloads。如果想离开当前目录,可以输入绝对路径,比如在 Windows中输入 cd C:\Users。
切换至父目录(上一级目录),需要输入 cd … 然后按回车键(确保在 cd 和两点之间有一个空格)。将这个命令和目录名相结合,如果你想先返回上一级目录,然后进入 Desktop,可以输入 cd …\Desktop。
2.1.3 Python REPL:交互式 Python 会话
交互式 Python 会话也被称为 REPL,意思是读取 – 求值 – 输出循环(read-eval-print loop),Python 会读取你的输入,对其求值,然后立即输出结果并等待下一次输入。

要退出 Python 会话,需要输入 quit() 并按回车键。也可以在 Windows 中按下快捷键
Ctrl+Z,然后按回车键。
2.1.4 包管理器:Conda 和 pip
Python 的包管理器 pip,它负责下载、安装、更新和卸载 Python 包及其依赖项和子依赖项。虽然 Anaconda 也可以配合 pip 工作,但是它还有一个名为 Conda 的内置包管理器。Conda 的一大优势是不仅可以安装 Python 包,还可以安装多种版本的 Python解释器。一言以蔽之:软件包可以为 Python 添加标准库中所没有的功能。
在使用 Anaconda 的情况下,应该尽可能地用 Conda 安装各种软件包。而 pip 只是用来安装那些在 Conda 中找不到的软件包。不然的话 Conda 可能会覆盖你用 pip 安装的包。
表 2-2 列出了最常用的命令。这些命令必须在 Anaconda Prompt 中输入,可以让你安装、更新和卸载第三方包。

查看安装的 Anaconda 发行版中已经安装了哪些包,可以输入以下代码:
(base)> conda list
安装 Plotly 和 xlutils,这两个包都可以在 Conda 中找到:
(base)> conda install plotly xlutils
执行这条命令之后,Conda 会向你表明它要干些什么,你需要输入 y 并按回车键表示确认。
通过 pip 来安装 pyxlsb 和 pytrends,这两个包 Conda 中没有:
(base)> pip install pyxlsb pytrends
和 Conda 不一样,pip 在你按回车键之后会立即开始安装而不需要确认。
2.1.5 Conda 环境
Anaconda Prompt 每行开头的 (base) 到底是什么。它是当前激活的 Conda 环境的名称。Conda 环境是一个被隔离的 “Python 世界”,有着特定版本的 Python 和一系列安装好的包。为什么非要这么做呢?当你同时开发多个项目的时候,各个项目会有不同的需求:一个项目可能需要 Python 3.8 和 pandas 0.25.0,而另一个项目可能需要 Python 3.9 和 pandas 1.0.0。由于为 pandas 0.25.0 编写的代码往往需要进行修改才能用到 pandas 1.0.0 上,因此不能只更新 Python 和 pandas 而保持代码原封不动。为每个项目都配置一个 Conda 环境可以保证它们使用正确的依赖项运行。Conda 环境虽然是 Anaconda 发行版的专有概念,但虚拟环境是所有 Python 发行版的通用概念。相比之下 Conda 环境更加强大,因为它不仅可以管理多个版本的软件包,还可以轻松管理不同版本的 Python 解释器。
创建新项目时,为每个项目使用单独的 Conda 环境或者虚拟环境是很好的实践方式,这可以让你规避不同项目之间的依赖冲突。
详情可见附录 A Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(附录 A Conda 环境)-CSDN博客
2.2 Jupyter 笔记本
在数据科学领域,人们热衷于使用 Jupyter 笔记本来运行代码。它把格式规整的可执行 Python 代码、图片和图表融合到一个交互式笔记本中,并且这个笔记本是运行在浏览器中的。Jupyter 笔记本对初学者很友好,在教学、原型开发、研究等领域极为受欢迎,极大地方便了可重现的研究。
Jupyter 笔记本可以快速准备、分析和可视化数据,这和工作簿的用例几乎相同。它已然成了 Excel 的竞争者。但和 Excel 不同,Jupyter 笔记本是用 Python 代码来完成这些工作的,而不是用鼠标在 Excel 中点来点去。Jupyter 笔记本的另一个优势是,它不会把数据和业务逻辑混在一起。Jupyter 笔记本会负责代码和图表,使用来自外部 CSV 文件或者数据库中的数据。Jupyter 笔记本在本地和远程服务器上都可以运行,一般来说,服务器要比本地机器性能更强,它可以在无人值守的情况下运行代码。
2.2.1 运行 Jupyter 笔记本
在 Anaconda Prompt 中,切换至配套代码库所在目录,这里使用创建的虚拟环境 xl38,然后启动 Jupyter 笔记本服务器:
(xl38)> cd ..
(xl38)> cd ..
(xl38)> F:
(xl38)> cd F:\Python\python-for-excel-1st-edition
(xl38)> jupyter notebook

打开的 Jupyter 仪表板会显示执行命令时所在目录中的文件。在 Jupyter 仪表板的右上方,点击新建,在下拉列表中选择 xl38,这里需要激活连接新建的虚拟环境 xl38(具体可见文档:Python开发环境安装流程.md 中的 Jupyter 代码编辑器的虚拟环境连接 Jupyter),过程如下:
(xl38) C:\Users\SHY>pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple
(xl38) C:\Users\SHY>python -m ipykernel install --user --name=xl38

浏览器会为你的第一个空白笔记本打开新的标签页:

点击 Jupyter logo 旁边的 Untitled,为工作簿取一个更有意义的名字,比如 first_notebook。
2.2.2 笔记本单元格
输入 3 + 4,然后点击上面菜单栏中的运行按钮,或者用更方便的快捷键:Shift+ 回车。单元格中的代码将会执行,并把结果输出到单元格下方,然后跳到下一个单元格。由于目前我们只有一个单元格,因此笔记本会在下面插入一个空白单元格。现在再仔细看一下,当单元格正在计算时,会显示 In [*];在计算完成时,星号就变成了数字,也就是 In [1]。在这个单元格下方你会看到对应的输出单元格,而且和输入单元格有相同的编号:Out [1]。每当你运行一个单元格,编号就会加 1,这个编号可以帮助你识别单元格执行的顺序。

**注意:**如果单元格的最后一行返回了一个值,那么它会自动输出到 Jupyter 笔记本的 Out [ ] 单元格中。然而,如果你使用的是 print 函数或者发生了异常,则相应的输出会直接显示在 In 单元格下方而没有 Out [ ] 标签。
单元格有不同的类型,我们需要关注以下两种。
1、代码:默认类型。需要执行 Python 代码时就会用到它。
2、Markdown:Markdown 是一种格式化语法,它使用标准的文本字符来格式化文本。可以用它在笔记本中添加格式规整的解释和说明。
要把单元格的类型切换为 Markdown,先选中单元格,然后在单元格模式下拉菜单中选 Markdown

在将一个空单元格切换为 Markdown 单元格后,输入下列文本,这是对 Markdown 语法规则的介绍
# 这是一级标题
## 这是二级标题
你可以让你的文本变成*斜体*、**粗体**或`等宽字体`
* 这是项目符号
* 又一个项目符号
按下快捷键 Shift+ 回车之后,这段文本会被渲染成格式规整的 HTML。Markdown 单元格还可以添加图片、视频或公式。



2.2.3 编辑模式与命令模式
当和 Jupyter 笔记本中的单元格互动时,你要么处于编辑模式(editing mode),要么处于命令模式(command mode)。
编辑模式:点击一个单元格以启动编辑模式。被选中的单元格边缘会变成绿色,单元格中的光标也会开始闪烁。除了点击单元格,还可以在选中单元格时按回车键。
命令模式:要切换至命令模式,需要按下 Esc 键。被选中的单元格边缘会变成蓝色且不会出现光标。
2.2.4 执行顺序很重要
假设你的笔记本中有下面这样几个单元格,从上往下执行:
In [2]: a = 1
In [3]: a
Out[3]: 1
In [4]: a = 2

单元格 Out[3] 会按照预期输出 1。然而,如果你回去再一次执行 In[3],就会得到下面的结果:
In [2]: a = 1
In [5]: a
Out[5]: 2
In [4]: a = 2

2.2.5 关闭Jupyter笔记本
每个笔记本都在一个独立的 Jupyter 内核中运行。内核是运行单元格中 Python 代码的“引擎”。每个内核都会消耗操作系统提供的 CPU 和 RAM 资源。在关闭笔记本时,还需要关闭它的内核,以便内核所占用的资源可以被其他任务重用——从而防止系统变慢。
最简单的方法是选择菜单中的“文件 > 关闭”。如果只是关闭了浏览器标签页,那么内核并不会自动关闭。另外,在 Jupyter 仪表板中,也可以从运行标签页中关闭正在运行的笔记本。

要关闭整个 Jupyter 服务器,可以点击 Jupyter 仪表板右上方的退出按钮(logout)。如果已经关闭了浏览器,可以在运行笔记本服务器的 Anaconda Prompt 中按两次快捷键 Ctrl+C,或者连同Anaconda Prompt 一起关闭。
2.3 VS Code
安装并配置 VS Code,它是微软开发的一个免费且开源的文本编辑器。
Jupyter 笔记本虽然对于研究、教学和实验这类互动型的工作流程来说很好用,但是如果想编写针对生产环境的 Python 脚本(这类脚本用不到笔记本的可视化功能),Jupyter 笔记本并非理想之选。对于一些涉及大量文件和多位开发者的复杂项目,Jupyter 笔记本也不是那么好用。
理论上来讲,可以使用任何文本编辑器(哪怕是记事本也行),但实际上你需要的是一个可以“理解”Python 的编辑器。这样的编辑器至少应该有如下特性。
1、语法高亮:编辑器会为具有不同语义(函数、字符串、数字,等等)的单词赋予不同的颜色,从而使得代码更容易阅读和理解。
2、自动补全:自动补全(autocomplete),或者用微软的话来讲叫智能感知(intelliSense),可以为文本组件提供建议,以便你少打字、少打错字。
VS Code 自 2015 年发布以来就深受开发者喜爱,其融合了纯文本编辑器和全功能 IDE:VS Code 是一个迷你 IDE,囊括了编程所需要的所有工具。除此之外,它还具有如下特性。
1、跨平台:VS Code 可以在 Windows、macOS 和 Linux 中运行,也有像 GitHub Codespaces 这样的云托管版本。
2、集成工具:VS Code 内置调试器,支持 Git 版本控制,还有可以用作 Anaconda Prompt 的集成终端。
3、扩展:包括 Python 支持在内的其他所有功能,都可以以扩展的形式一键安装。
4、轻量:根据操作系统的不同,VS Code 的安装包仅有 50MB~100MB 大小。
VS Code 和 Visual Studio
不要把 VS Code 和名为 Visual Studio 的 IDE 搞混了!虽然也可以用 Visual Studio 来进行 Python 开 发 [Visual Studio 有 PTVS(Python Tools for Visual Studio,适用于 Visual Studio 的 Python 工具)],但是需要安装很多东西。传统上 Visual Studio 是用来做 .NET 语言(如 C#)开发的。
2.3.1 安装和配置
下载官网:Visual Studio Code - Code Editing. Redefined
安装的时候注意安装位置,避免安装到 C 盘。VS Code 确实是一个开箱即用的优秀文本编辑器,但是要让它完美配合 Python,还需要进行一些配置。点击活动栏上的扩展图标,然后搜索 Python。安装作者显示为微软(Microsoft)的官方 Python 插件。待其安装完成之后,可以点击需要重新加载按钮来完成安装。或者也可以完全重启 VS Code。

命令面板:按下 F1 键或者快捷键:Ctrl+Shift+P(Windows 系统)或者 Command-Shift-P(macOS系统),可以打开命令面板。如果对某些东西拿不准,你首先就应该想到命令面板。VS Code 所有功能的快捷入口都在其中。
Windows中,打开命令面板,输入 default profile。选择“终端:选择默认配置文件”这一项,然后按回车键。在下拉菜单中,选择命令提示符并按回车键确认。我们需要这样设置,以便 VS Code 正常激活 Conda 环境。
2.3.2 执行Python脚本
虽然可以从 Windows 的开始菜单或者 macOS 的启动台打开 VS Code,但是直接从 Anaconda Prompt 中打开会更快——可以直接用 code 命令启动 VS Code。接下来,打开一个新的 Anaconda Prompt,通过 cd 命令将目录切换到你希望进行操作的地方,然后让 VS Code 打开当前目录(用点表示):
(base) C:\Users\SHY>conda activate xl38
(xl38) C:\Users\SHY>cd ..
(xl38) C:\Users>cd ..
(xl38) C:\>D:
(xl38) D:\>cd D:\DevTools\Jupyter\python-for-excel-1st-edition
(xl38) D:\DevTools\Jupyter\python-for-excel-1st-edition>


以这种方式启动 VS Code 可以让活动栏中的资源浏览器自动显示启动目录中的内容。

把鼠标悬停在活动栏的资源管理器中的文件上时,会看到新建文件按钮。点击新建文件,取名为 hello_world.py,然后按回车键。当文件在编辑器中打开之后,输入下面这行代码:
print("hello world!")

状态栏中,应该可以看到 Python 的版本,比如“Python 3.8.5 64-bit (conda)”。如果点一下,命令面板会显示让你选择一个不同的 Python 解释器(如果你有好几个的话),也包括不同的 Conda 环境。

在执行脚本之前,一定要先保存。在 Windows 中可以按快捷键 Ctrl+S 进行保存。
在 VS Code 中,可以通过 Anaconda Prompt运行,也可以直接点运行按钮。当你要执行一个服务器上的脚本时,可能更多地还是从Anaconda Prompt 中执行,所以有必要知道具体如何操作。
Anaconda Prompt:打开 Anaconda Prompt,将 cd 放入脚本所在的文件夹中,按如下方式运行脚本:
(xl38)> cd cd D:\DevTools\Jupyter\python-for-excel-1st-edition
(xl38)> python hello_world.py
hello world!

注意,如果你当前不在 Python 文件所在的目录,则需要使用完整路径。
1、VS Code 中的 Anaconda Prompt:
不必为了使用 Anaconda Prompt 而从 VS Code 中切换出去。在 VS Code 中可以直接通过快捷键 Ctrl+` 或者“查看 > 终端”菜单项显示集成终端。由于集成终端会在项目所在文件夹中打开,因此也不需要切换目录

2、VS Code 中的运行按钮
在 VS Code 中,有一种无须使用 Anaconda Prompt 也能运行代码的简单方法。在编辑Python 文件时,你会在右上方看到一个播放图标,这就是运行文件按钮。点击这个按钮会自动在底部打开终端并运行代码。

3、在 VS Code 中打开文件
当你在资源管理器(位于活动栏)中单击一个文件时,VS Code 会有一些令人意外的默认行为。单击文件后,文件会以预览模式打开,意思就是说如果没有对这个文件进行更改,那么你下一次单击打开的文件会替换掉这个文件的标签页。如果想关掉单击操作的这种行为(变成单击选定文件,双击打开),可以在“首选项 > 设置”中(或者用快捷键,在 Windows 中是 Ctrl+,,在 macOS中是 Command-,)将“工作台 >‘List: Open Mode’”设置为“doubleClick”。

拓展:


DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)