原文来自medium
原作者:Parul Pandey
本人对原文进行了加工编辑。
今天我将给大家介绍几种利用python进行快速高效数据分析的工具和技术,废话少说,让我们撸起袖子干起来。
1.pandas_profiling
我们知道pandas的dataframe是一个内存数据集,我们通常使用会使用df.describe()或者 df.info()来查看数据的概况,但是对于高手来说,这些方法有点弱,pandas_profiling扩展了pandas的DataFrame,df.profile_report()用于快速数据分析。pandas_profiling会对数据集中的每一列进行详细的分析,并给出精美的可视化的HTML报告,主要分析内容如下:
对于数据集中的每一列,以下统计信息(如果与列类型相关)将显示在交互式HTML报告中:
- 要点:类型,唯一值,缺失值
- 分位数统计量,如最小值,Q1,中位数,Q3,最大值,范围,四分位数范围
- 数据统计,如均值,模式,标准差,总和,中位数绝对偏差,变异系数,峰度,偏度
- 最频繁的值
- 直方图
- 变量的相关性 高亮度显示变量之间相关系数矩阵,斯皮尔曼,Pearson和肯德尔矩阵
- 丢失缺失值的值,矩阵,计数,热图和树形图
大家可以在这里查看pandas_profiling的官方文档和例子。
pandas_profiling安装
pip install pandas-profiling
pandas_profiling使用
2.交互式的数据可视化库Cufflinks
我们知道pandas内置了数据可视化方法plot(),但是它不能实现交互式的可视化,Cufflinks弥补了pandas的这个短板,它为用户提供了一种交互式的数据可视化,用户可以在jupyter notebook中与各种图表进行交互,甚至是三维数据的可视化,都可以让用户任意拖动图像,给你带来一种震撼的体验。Cufflinks结合了plotly 使得pandas绘图更加灵活方便。
更多的例子请查看:
Cufflinks安装
pip install plotly # 安装cufflinks之前必须先安装plotly
pip install cufflinks
Cufflinks使用
上面的图是数据集中的基本统计信息,下面的图是交互图,用户可以在图上进行随意拖拽,放大,缩小等操作。
3.魔法命令
Magic命令是Jupyter notebook中的一组便捷功能,旨在解决标准数据分析中的一些常见问题。 你可以在%lsmagic的帮助下看到所有可用的魔法。
魔术命令有两种:行命令,以单个%字符为前缀,在单行输入上操作,以及单元命令,与双%%字符为前缀,并在多行输入上操作。 让我们看一下在常见数据分析任务中可能有用的一些内容:
-
% pastebin
%pastebin将代码上传到Pastebin并返回url。Pastebin是一个在线内容托管服务,我们可以存储纯文本,如源代码片段,然后可以与其他人共享网址。事实上,Github gist也类似于pastebin,虽然有版本控制。
下面我写了一个helloWorld.py文件,我想把helloworld的代码共享给朋友,我可以这样做:首先编辑一个helloworld文件,然后使用%pastebin命令,上传该代码文件,同时得到一个短链接,然后将该短链接分享给自己的朋友,那么我的朋友就能看见我所写的代码了:
-
%matplotlib notebook
经常使用jupyter notebook的朋友一定知道%matplotlib inline命令,它是用来在对数据可视化时将matplotlib的各种图表嵌入notebook中显示,但是你可能不知道还有一个%matplotlib notebook命令,它扩展了%matplotlib inline命令,让图像具备放大,缩小等功能。
%matplotlib inline vs %matplotlib notebook
-
%run 命令
%run 命令可以用来在notebook中运行一个.py的python脚本文件
-
%%writefile
%%writefile命令用来将当前代码单元(cell)中的代码写入写入指定的脚本文件中,如果文件存在将会被覆盖。
%%latex
%%latex命令的运行我们在当前代码单元中输入latex语法,以生成各种数学公式和特殊符号。如大家对latex语法不熟悉,在这里给大家推荐一个在线latex公式编辑器(https://private.codecogs.com/latex/eqneditor.php?lang=en-us),该在线公式编辑器可自动生成llatex语法。
4.jupyter notebook 交互调试(debug)
当我们的代码出现异常是我们可以输入%debug命令,对错误的代码进行调试。
5.更美观的打印命令pprint
如果您想生成美观的数据结构表示,pprint是首选模块。它在打印字典或JSON数据时特别有用。让我们看一下使用print和pprint时打印结果的差异:
6.漂亮的Markdown
当我们在notebook中将单元(cell)的类型改成markdown时,我们便可以在其中编辑文本信息。这时我们可以对markdown的单元做一些设置让它更加美观.
当我们在notebook中将单元(cell)的类型改成markdown时,我们便可以在其中编辑文本信息。这时我们可以对markdown的单元做一些设置让它更加美观.
- 蓝色警示框:信息
<div class="alert alert-block alert-info">
可以在这里输入一般信息.
</div>
- 黄色警示框:警告
<div class="alert alert-block alert-warning">
可以在这里输入警告信息.
</div>
- 绿色警示框:成功
<div class="alert alert-block alert-success">
可以在这里输入成功信息
</div>
- 红色警示框:危险
<div class="alert alert-block alert-danger">
可以在这里输入危险警告信息
</div>
7.打印出单元(cell)中所有输出内容¶
如果一个代码单元中有多个输出时,notebook一般只会输出最后一个结果,请看下面的一个例子:
如何在不使用print命令时输出单元中所有的输出结果呢?我们只需要添加如下两条代码:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
如果想要恢复原先的设置只需要将InteractiveShell.ast_node_interactivity设置为"last_expr"
InteractiveShell.ast_node_interactivity = "last_expr"
8.运行python脚本时使用-i选项
行运行python脚本的典型方法是在命令行中输入:python hello.py。 但是,如果在运行相同的脚本时添加额外的-i选项,例如python -i hello.py,它会提供更多优势。 我们来看看实现
-
首先,一旦到达程序结尾,python不会退出解释器。 因此,我们可以检查变量的值和程序中定义的函数的正确性。
- 其次,我们可以轻松地调用python调试器,因为我们仍然在解释器中:
import pdb
pdb.pm()
这将使我们进入发生异常的位置,然后我们可以处理代码。进一步内容请参考这篇文档
9.jupyter notebook中批量注释/缩进代码
我们可以使用Ctrl(Cmd) + / 来注释多行代码:
批量注释代码
- windows电脑: Ctrl+/
- 苹果电脑: Cmd+/
批量缩进代码
- 向左缩进:Ctrl+[
- 向右缩进:Ctrl+]
10.恢复被意外删除的cell
- 如果你意外删除了cell中的代码(没有删除cell),那么你可以按下:CTRL(CMD)+Z,恢复cell中被删除的内容
- 如果你意外的将整个cell给误删除了,那么你可以按下:ESC+Z 或 EDIT > Undo Delete Cells,恢复被删除的cell.结论
11. 在jupyter notebook中安装R语言的编程环境
在命令行中输入:
conda install -c r r-essentials
结论
在本文中,我列出了使用Python和Jupyter notebook时收集到的一些技巧。 我相信它们会对你有用,你会从这篇文章中学到一些东西。 祝各位程序猿编码快乐!!
你可以在这里下载完整代码: