
2.7 开发工具比较与代码共用
2.7.1 开发工具比较
前面章节分别介绍了PyCharm、Jupyter Notebook和Spyder这3种开发工具,它们各有特点。
数据分析,建议使用Spyder和Jupyter Notebook。
复杂、大型项目,建议使用PyCharm。
数据分析、复杂和大型项目,建议三者可以结合使用。
1.PyCharm
Pycharm是很强大的Python IDE,容易上手,所有的变量都能够显示,方便程序调试。缺点是查看数据不方便、不美观,会出现列不对齐,或者多行多列显示不全的问题。
2.Jupyter Notebook
Jupyter Notebook将代码、说明文本、数学方程式、数据可视化图表等内容全部组合到一起显示在一个共享的文档中,可以实现一边写代码一边记录,而这些功能是Python自带的IDLE和集成开发环境PyCharm无法比拟的。
3.Spyder
Spyder特色是变量可以直观地以表格方式显示,随时随地查看变量和值,不容易出错。还可以用颜色区分数据,并对数据进行排序。
缺点是创建工程只支持在Spyder环境中创建,自己在本地创建的文件夹导入Spyder中则不支持,这一点逊色于PyCharm,PyCharm比较灵活,无论是在环境中创建还是自己在本地创建均支持。另外,Spyder调试程序没有PyCharm方便。
2.7.2 代码共用
由于Spyder以表格显示数据,查看变量更方便,并且看上去更加整齐美观,本书采用了Spyder,其生成的.py文件,在Pycharm和Jupyter Notebook中都可以运行。下面分别进行介绍。
1.在PyCharm中运行.py文件
在PyCharm中运行.py文件,如果只运行某一个文件,右击该文件,在弹出的快捷菜单中选择Edit with PyCharm Community Edition命令直接运行即可;如果运行项目文件夹,则需要运行Pycharm,选择File→Open命令,在Open File or Project窗口中选择项目文件夹即可。
接下来运行代码,需要注意以下3点。
(1)在PyCharm中查看运行结果需要使用print()方法在控制台输出。
(2)需要解决列不对齐,或者多行多列显示不全的问题。
当在控制台输出数据时,会出现列不对齐,或者多行多列显示不全的问题。此时需要使用Pandas模块的set_option()函数来解决这两个问题。
解决列不对齐
通过将display.unicode.east_asian_width设置为True,使列对齐。例如:
pd.set_option('display.unicode.east_asian_width', True)
行列显示不全
通过display.max_rows和display.max_columns修改输出数据的最大行数和列数。例如:
pd.set_option('display.max_rows',1000) pd.set_option('display.max_columns',1000)
其中pd为Pandas模块。
(3)显示图表需要使用show()方法。
在使用Matplotlib和Seaborn绘制图表时,显示图表需要使用show()方法。代码如下:
plt.show()
其中plt为Matplotlib模块的pyplot子模块。
说明
相关内容介绍可参见第5章。
下面将介绍如何在PyCharm下运行.py文件,以及修改相关代码以匹配PyCharm开发环境。具体步骤如下所示。
(1)运行PyCharm,选择File→Open命令,在Open File or Project窗口中选择Code文件夹,如图2.73所示。单击OK按钮,在弹出的对话框中单击New Windows按钮,在新窗口中导入本书源码,展开Code\03\01,双击demo.py文件,如图2.74所示。

图2.73 选择Code文件夹

图2.74 查看demo.py文件的代码
(2)由于在Spyder中不需要使用print()方法就可以查看变量,因此上述代码直接在PyCharm中运行将不会显示运行结果,需要使用print()方法输出,修改后的代码如下:
01 import pandas as pd #导入pandas 模块 02 df=pd.read_excel('data.xlsx') #读取Excel 文件 03 print(df.head())
(3)运行程序,输出结果如图2.75所示。

图2.75 输出结果1
正如前文所述,出现了列不对齐的现象,增加一行代码来解决这一问题,代码如下:
pd.set_option('display.unicode.east_asian_width', True)
再次运行程序,输出结果如图2.76所示。可以看到,列不对齐现象已解决。

图2.76 输出结果2
接下来,我们还将介绍如何在Jupyter Notebook中运行.py文件。
2.在Jupyter Notebook中运行.py文件
在Jupyter Notebook开发工具中运行.py文件有以下两种方法。
方法1:利用%run xx.py直接运行得出结果。
方法2:利用%load xx.py导入代码再选择Run命令运行。为了方便修改代码,推荐使用这种方法。
知识胶囊
Jupyter Notebook中以%开头的代码为魔法函数,具体说明如下。
%run:用于调用外部的Python脚本文件。
%load:用于加载本地文件。
在Jupyter Notebook开发工具中运行.py文件,具体步骤如下所示。
(1)运行Jupyter Notebook,首先创建一个项目文件夹,单击右上角的New按钮,在弹出的菜单中选择Folder选项,如图2.77所示。

图2.77 创建项目文件夹
(2)创建完成后,列表中会出现一个默认名为Untitled Folder的文件夹,双击进入该文件夹,单击上方的Upload按钮上传文件,在“打开”对话框中选择项目文件夹中的文件,单击“打开”按钮,如图2.78所示。
(3)导入项目文件,单击“上传”按钮,将项目文件上传到文件夹中。
(4)上传完成后,单击右上角的New按钮,新建一个Python 3文件,如图2.79所示。
(5)加载本地.py文件,代码如下:
%load demo.py
(6)运行程序,代码将被导入Jupyter Notebook中,如图2.80所示。
(7)图2.80中并没有输出结果是因为没有指定变量,下面对代码稍作修改,如图2.81所示。

图2.78 导入项目文件的过程

图2.79 新建一个Python 3文件

图2.80 导入.py文件

图2.81 修改后的代码
(8)再次运行程序,结果如图2.82所示。

图2.82 输出结果
注意
如果不显示运行结果,单击“中断服务”后再次运行即可。
上述文件是符合Jupyter Notebook的文件格式,即Untitled.ipynb。
以上对比了不同的开发工具,无论使用哪一种开发工具,其代码都有一定的通用性,只是在输出结果上略有不同,如果掌握了一定的Python技能,就可以安装多种开发工具,并根据需求进行切换。