提示和技巧老是很是有用的,在编程领域更是如此。有时候,小小的黑科技能够节省你大量的时间和精力。一个小的快捷方式或附加组件有时会是天赐之物,能够成为实用的效率助推器。因此,我在这里介绍下本身编程时最喜欢使用的一些提示和技巧,在这篇文章中汇总起来呈现给你们。有些多是你们熟悉的,而有些多是新鲜的,我相信它们会为你下一次处理数据分析的项目时提供便利。html
分析预览(profiling)是一个帮助咱们理解数据的过程,在Python中Pandas Profiling 是能够完成这个任务的一个工具包,它能够简单快速地对Pandas 数据框进行搜索性数据分析。Pandas中df.describe()和df.info()函数一般能够实现EDA过程的第一步,但若是只是给出很是基础的数据预览并不能对分析那些大型的数据集提供帮助。另外一方面来看,Pandas Profiling函数能经过一行代码来展现出大量的信息,而在交互式HTML报告中也是这样。node
对于一个给定的数据集,Pandas Profiling 工具包将会计算出下面的统计信息:python
由pandas profiling包算出的统计信息git
Python2.x的版本中,运用pip或conda安装pandas-profiling资源包:github
pip install pandas-profiling
or
conda install -c anaconda pandas-profiling复制代码
如今用一个古老的泰坦尼克数据集来演示多功能python profiler的结果:shell
#importing the necessary packages
import pandas as pd ##使用pandas资源包
import pandas_profiling ##使用新安装的pandas profiling资源包
df = pd.read_csv('titanic/train.csv') ##读取数据造成数据框
pandas_profiling.ProfileReport(df) ##使用pandas profiling分析数据复制代码
这一行就是你须要在jupyter notebook中造成数据分析报告所需的所有代码。这个数据报告十分详细,包括了全部必要的图表。编程
图1.1bash
这个报告也能够用下面的代码造成交互HTML文件(interactive HTML file)导出:数据结构
profile = pandas_profiling.ProfileReport(df)
profile.to_file(outputfile="Titanic data profiling.html") ##造成Titanic data profiling.html网页复制代码
图1.2函数
Pandas中有一个内置的.plot()函数做为数据框(Dataframe)的一部分,但由于这个函数呈现的可视化并非交互的,这使它的功能没那么吸引人。并且,使用pandas.DataFrame.plot()函数绘制图表也并不容易。若是咱们想要在没有对代码进行重大修改的状况下用pandas绘制交互式图表要怎么办?嗯,能够经过Cufflinks资源包来帮助你完成这一目的。
Cufflinks资源包将功能强大的plotly和灵活易用的pandas结合,很是便于绘图。如今咱们来看看怎么安装和在pandas中使用这个资源包。
Python2.x的版本中,使用pip安装plotly和cufflink:
pip install plotly # Plotly is a pre-requisite before installing cufflinks(plotly先于cufflinks安装)
pip install cufflinks
复制代码
调用方法:
#importing Pandas
import pandas as pd ##使用pandas资源包
#importing plotly and cufflinks in offline mode
import cufflinks as cf ##使用cufflinks 和plotly资源包
import plotly.offline
cf.go_offline() ##使用cufflink包中的函数
cf.set_config_file(offline=False, world_readable=True)复制代码
下面来看一下泰坦尼克数据集所展示的魔力:
df.iplot()
复制代码
图2.1
图2.2
右边的可视化展现的是静态的线状图,而左边的图是交互式的,而且更加详细,两个图在代码上没有重大的变化。
Github的连接中将会有更多的示例:
Magic命令是Jupyter Notebook中的一组便捷功能,它们旨在解决数据分析中一些常见的问题。你能够用%Ismagic来查阅全部的Magic 命令。
上图列举了全部可用的Magic 函数
Magic命令有两大类:行magic命令(line magics),以单个% 字符为前缀,单行输入操做;单元magics命令(cell magics),以双%% 字符做为前缀,能够在多行输入操做。若是设置为1,咱们使用magic 函数时不须要键入%。
下面让咱们来看一下,在常见的数据分析任务中一些可能会用到的命令。
% pastebin将代码上传到Pastebin并返回一个连接。Pastebin是一个线上内容托管服务,咱们能够在上面存储纯文本,如源代码片断,所造成的连接也能够分享给他人。事实上,Github gist也相似于pastebin,只是它带有版本控制。
来看一下这个file.py的python代码文件中的内容:
#file.py
def foo(x):
return x复制代码
在Jupyter Notebook中使用% pastebin造成一个pastebin的连接。
%matplotlib inline函数用于在Jupyter笔记本中呈现静态matplotlib图。咱们能够尝试用notebook来代替inline获得可轻松地缩放和调整大小的绘图,但要确保在套用matplotlib资源包以前调用该函数。
%matplotlib inline vs %matplotlib notebook
%run函数用于jupyter notebook中运行一个python脚本文件。
%% writefile将执行单元的内容写入文件。下面的这段代码将写入名为foo.py的文件并保存在当前目录中。
%% latex函数将单元格内容以LaTeX的形式呈现。它对于在单元格中编写数学公式和方程颇有用。
交互式调试器(interactive debugger)也是一个Magic函数,但我必须给它归个类。若是你在运行代码单元出现异常时,能够在新行中键入%debug运行。这将打开一个交互式调试环境,它将您告诉你代码发生异常的位置。你还能够检查程序中分配的变量值,并在此处执行操做。点击q可退出调试器。
若是你想生成美观的数据结构,pprint是首选的模块。它在输出字典数据或JSON数据时特别有用。下面来看一下print 和pprint输出的一个例子:
能够在你的Jupyter Notebook中使用提示/注释框来突出显示任何重要的内容。注释的颜色取决于指定的提示类型。只需在代码中加入须要突出显示的内容便可。
代码示例:
<div class="alert alert-block alert-info">#提示框开头
<b>Tip:</b> Use blue boxes (alert-info) for tips and notes.
If it’s a note, you don’t have to include the word “Note”.#提示框内容
</div>#提示框结尾复制代码
输出结果:
代码示例:
<div class="alert alert-block alert-warning">
<b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas.
</div>复制代码
输出结果:
代码示例:
<div class="alert alert-block alert-success">
Use green box only when necessary like to display links to related content.
</div>复制代码
输出结果:
代码示例:
<div class="alert alert-block alert-danger">
It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.
</div>复制代码
输出结果:
下面来看一下Jupyter Notebook格中包含的几行代码:
In[1]: 10+5
11+6
Out[1]: 17复制代码
一般一个执行单元只输出最后一行的结果,而对于其余输出咱们须要添加print()函数。好吧,事实证实咱们能够经过在Jupyter Notebook开头添加如下代码来输出每一行的结果:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"复制代码
如今全部结果能够被一一输出:
In[1]: 10+5
11+6
12+7
Out[1]: 15
Out[1]: 17
Out[1]: 19复制代码
若是要恢复成初始设定:
InteractiveShell.ast_node_interactivity = "last_expr"复制代码
在命令行中运行python脚本的典型方法是:python hello.py。可是,若是在运行相同的脚本文件时额外添加一个 -i,例如python -i hello.py,这会带来更多好处。咱们来看看是怎么回事:
首先,一旦程序结束,python不会退出编译器。所以,咱们能够检查变量的值和程序中定义的函数的正确性。
其次,咱们能够轻松地调用python调试器,由于咱们仍然在编译器中:
import pdb
pdb.pm()复制代码
这将把咱们带到代码发生异常的位置,而后咱们能够去处理代码。
源代码连接:
www.bnikolic.co.uk/blog/python…
Ctrl / Cmd + / 命令将自动注释执行单元中的选定行。再次点击组合将取消注释相同的代码行。
你有没有不当心误删过Jupyter Notebook中的执行单元呢?若是有,这里有一个能够撤消该删除操做的快捷方式。
文章来自阿里云开发者社区