10个小技巧加速数据分析

2019-08-27    来源:raincent

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

划重点!!!本文列举了一些使用Python和Jupyter Notebook的技巧,讨论了如何轻松分析数据以及如何进行格式化编码、输出和调试等操作。
 

 

在编程领域,有时一个小技巧就能节省大量时间,甚至能起到救命的效果。这些“必杀技”往往能在未来的数据分析中发挥重大作用。

1. 分析Pandas数据框架

Profiling(分析)是一个帮助理解数据的过程,Pandas Profiling(数据预览分析)作为一个python工具包,就是用来帮助理解数据的。该工具能够简单快速地对熊猫数据框架进行探索性数据分析。pandas df.describe()和df.info()functions通常是EDA过程的第一步。然而,这个步骤只提供一个基本的数据预览,对大型数据集帮助不大。另外,Pandas Profiling功能使用df.profile_report()扩展了熊猫数据框架,可以快速进行数据分析。该功能仅用一行代码就可以显示很多信息,这也可以应用在交互式的HTML报告中。

对于给定数据集,数据预览分析包会处理以下数据:

 

 

Pandas Profiling工具包计算的统计数据

安装

 

 

使用

用古老的大数据集来演示python profiler的功能。

 

 

最近,Pandas-Profiling发布了一个重要的2.0.0升级版本。事实上,该版本对语法作了一点改变,这个功能也已经包含在熊猫数据框架中了,报告也变得更加全面。以下是最新的语法用法:

使用

要在Jupyter笔记本中显示报告,并运行:

 

 

这一行代码就是用户在Jupyter笔记本中显示数据分析报告所需的全部内容。显示的报告非常详细,必要时还包括图表。

 

 

通过下列代码用户还可以将该报告导出到交互式HTML文件中:

 

 

 

 

更多详细信息和示例:https://pandas-profiling.github.io/pandas-profiling/docs/

2. 增强Pandas plots的互动性

Pandas有一个内置的 .plot() 功能,是数据框架类的一部分。然而,该功能不尽人意的地方在于呈现的可视化不是交互式的。相反,用pandas.DataFrame.plot()功能绘制图表就很容易。如果不对代码做重大修改,可以绘制出像熊猫图表一样的交互式图表吗?答案是可以的,Cufflinks库能够帮助做到这一点。

Cufflinks库将plotly的功能与Pandas的灵活性结合起来,使绘图简单化。现在就来看看如何安装这个库,并让它在pandas上运行。

 

 

 

 

 

 

 

 

右边的可视化显示的是静态图表,而左边则是交互式图表,更为详细。这些图表在语法上都没有作出重大改变。

更多示例:https://github.com/santosjorge/cufflinks/blob/master/Cufflinks%20Tutorial%20-%20Pandas%20Like.ipynb

3. 少许魔法

魔法命令(Magic commands)是Jupyter笔记本中的一组便捷功能,旨在解决标准数据分析中的一些常见问题。在 %lsmagic的帮助下,用户可以看到所有可用的魔法功能。

 

 

所有可用魔法功能的清单

魔法命令有两种:行魔法,即以单个%字符为前缀,在单行输入上操作;单元格魔法,即以%%为前缀,在多行输入上操作。如果设置为1,则无需键入初始%即可调用魔术功能。

一起来看看两种魔法命令在常见数据分析任务中的应用:

% pastebin

%pastebin将代码上传到Pastebin并返回url地址。Pastebin属于在线内容托管服务,在这里,用户可以存储如源代码片段等纯文本,然后与他人共享网址。事实上,Github的要点也类似于pastebin,尽管存在版权限制。

考虑一个包含以下内容的python脚本file.py:

 

 

在Jupyter笔记本中使用 %pastebin会生成一个pastebin网址。

 

 

%matplotlib notebook

%matplotlib inline功能用于渲染Jupyter笔记本中的静态matplotlib图。尝试用notebook替换inline,以轻松获得可变焦、可调整大小的绘图。请确保在导入matplotlib库之前启用该功能。

 

 

%matplotlib inline 与 %matplotlib notebook

%run

%run 功能在笔记本内部运行python脚本。

 

 

%%writefile

%%writefile 将单元格的内容写入文件。通过该功能,代码将被写入一个名为foo.py的文件,并保存在当前目录中。

 

 

%%latex

%%latex 功能将单元格内容呈现为 LaTeX格式。这对于在单元格中编写数学公式和方程很有用。

 

 

4. 查找并消除错误

Interactive debugger也是一个有魔力的功能,但本文对它进行单独分类。如果在运行代码单元时出现异常,用户可以在新的一行中键入 %debug 并恢复运行。这一操作将打开一个交互式调试环境,找到发生异常的位置。用户还可以检查程序中分配的变量值,并在此执行操作。点击q即可退出调试。

 

 

5. 美观排版

如果想建立美观的数据结构,pprint是一个直接的模块,在打印字典或JSON数据时特别有用。下面来看一个使用print 和 pprint 来显示输出的例子。

 

 

6. 笔记突出显示

可以在Jupyter笔记本中使用alert/Note boxes来标记一些重要的或需要突出的内容。笔记的颜色取决于突出内容的重要程度。用户只需在需要突出显示的单元格中添加以下任意或所有代码。

 

 

7. 打印单元格的所有输出

例如包含以下代码行的Jupyter笔记本单元格:

 

 

只打印最后一个输出是单元格的正常属性,而其他输出,则需要添加 print()功能。事实证明,只要在笔记本顶部添加以下代码段,就可以打印所有的输出内容。

 

 

现在所有输出可以一个接一个地打印出来。

 

 

输入以下代码可恢复到初始设置:

 

 

8. 使用‘i’选项运行python脚本

从命令行运行python脚本的一种典型方式是:python hello.py。但是,如果在运行相同脚本时添加一个额外的-i,例如python -i hello.py,则会带来更多优势。具体操作如下:

首先,一旦程序结束,python就不会退出解释程序。此时,用户可以检查变量值和程序中定义功能。

 

 

其次,因为用户仍然在解释程序中,所以可以通过以下方式轻松调用python调试器:

 

 

该方式可帮助用户找到异常发生的位置,然后可以处理代码。

 

 

漏洞的原始来源

9. 自动注释代码

Ctrl/Cmd + / 可以自动注释掉单元格中选定的行。再次点击该组合键可以取消同一行代码的注释。

 

 

10. 撤销删除操作

你曾经有不小心删除过笔记本中的单元格吗?如果有,那么这里有一个快捷键可以撤销删除操作。

如果删除了单元格的内容,可以通过点击CTRL/CMD+Z来轻松恢复它

如果需要恢复整个删除的单元格,可以点击ESC+Z或者 EDIT > Undo Delete Cells

 

标签: 数据分析 大数据

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Nature解析中国AI现状,2030年能引领全球吗?

下一篇:工业企业数据管理面临的挑战与对策