26

7件事,让你快速提高数据分析能力

 4 years ago
source link: http://developer.51cto.com/art/201911/605488.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

想让自己的数据分析能力更上一层楼吗?本文可以帮助你形成一个“每日加速提升数据分析能力清单”。

2AbUvia.jpg!web

#1: Pandas Profiling

这一工具的优点显而易见。以下动画是使用df.profile_report()这一简单方法的结果。请自行观看成果展示;

FfABnuM.gif

使用此工具只需安装和导入Pandas Profiling程序包即可。

#2: 使用Cufflinks和Plotly绘制Panda数据

大多所谓的“经验丰富的”数据科学家或数据分析师都对matplotlib和 pandas的协同非常熟悉。也就是说,他们可以通过使用.plot()函数快速绘制pd.DataFrame或pd.Series图像。

FRjiquA.jpg!web

有点无聊是吧?

现在就好了。如何做一个交互型全景式可缩放的图像呢?Cufflinks 可以做到!(由 Plotly提供)

在系统中安装Cufflinks即可! 快速安装Cufflinks ——在自己最喜欢的终端进行更新即可。可以观看以下动画:

y67naaA.gif

好多了!

注意,唯一会改变以上结果的是对Cufflinks输入并设置cf.go_offline() 函数。其余的只是把.plot()改成.iplot()。

其他像.scatter_matrix()这样的函数会带来不错的可视化图像:

mIZrQbI.jpg!web

酷毙了!

希望从事大量数据可视化工作的朋友都看一看有关的Cufflinks和Plotly内容,从中可以找到大量方法!

#3: IPython Magic Commands

IPython 的Magics本质上就是IPython堆叠在Python语法顶端的一系列加强功能。Magic commands有两种:其一为line magics,用%作为前缀表示,在一行输入的代码上运行;而 cell magics用%%作为前缀表示,在多行输入的代码上运行。以下是Magics的一些实用函数:

%lsmagic: 应有尽有。

不妨先尝试一些传统却好用的方法。如果只记得一条Magic Command,估计就是它了。执行%lsmagic将会出现所有可用的Magic Commands列表:

qUVR7nB.jpg!web

%debug: 交互程序调试

这估计是Magic Command使用频次最高的了。

大多人都试过:程序员执行一个代码块,而这个代码块一直出错。绝望中的程序员为了输出每一变量的内容,写下20 print()一类代码。然后当程序员终于修复了问题时,就不得不回过头删除所有列出的函数。

然而现在不用了!只需在遇到问题的时候执行%debug,就可以执行任意一部分代码了:

mmueEze.gif

那么,总结一下以上内容:

1. 有一个函数,它将一个列表作为输入,并平方所有偶数。

2. 运行函数,某处出现错误。但无法找到错误。

3. 出错时把%debug命令标记到函数中。

4. 让调试程序显示x以及type(x)的值。

5. 由此找到了错误:6被当作了一行字符串!

可以想象,这一命令对更多更复杂的函数都大有用处!

%store: 在notebooks间互传变量

这个命令也很棒。首先说一说起因。程序员花时间清理了notebook中的一些数据,现在要测试另一notebook中的一些函数,因此既需要在同一notebook中实现函数功能,又要将其放到另一notebook中。用%store只要存储变量,并在任一notebook中检索即可:

uq6Zfmn.gif

%store [variable]存储变量。

%store -r [variable]阅读/检索已存储的变量。

%who: 罗列所有变量。

是否曾将某个值赋到一个变量上但忘了变量名称?是否不小心删除了赋值给变量的单元格?有了%who,就可以获得所有已赋值的变量:

N3Avyei.gif

%%time: 魔法定时。

有了这个命令,就可以获得一切所需的定时信息。只要将%%time应用到任何一段可执行的代码中,就可以获得如下输出:

6viqeeV.jpg!web

24微秒。马马虎虎吧。

%%writefile: 将单元格内容编辑到文档。

这是本文的最后一个命令。当已经在notebook中写了一些复杂的函数或其类别,而想要将其从notebook中分离存到文件中去时,这个命令非常有用。只需为函数或其类别添加前置%%writefile,然后添加文件名储存即可:

j6buy2b.jpg!web

如图所示,可以直接将创建的函数储存到 “utils.py” 文件夹中,以任意形式导入函数即可。在其他notebook中也是这样!(只要都在utils.py文件夹的同一个目录中)

#4: Jupyter中的绚丽格式

这个非常棒!基本上,Jupyter允许在markdown单元格中设置一些HTML / CSS格式。这是一些常用的:

忧郁而时髦的:

<div class="alert alert-block alert-info"> 
 
This is <b>fancy</b>! 
 
</div> 

热血而稍显痛苦的:

<div class="alert alert-block alert-danger"> 
 
This is <b>baaaaad</b>! 
 
</div> 

青涩而平静的:

<div class="alert alert-block alert-success"> 
 
This is <b>gooood</b>! 
 
</div> 

此处为操作动画:

YZZvYza.gif

当要以notebook形式展示成果时,这些命令非常有用!

#5: Jupyter的快捷键

学习了键盘快捷键后,可以使用命令面板:Ctrl + Shift + P。这一操作可以直接唤起notebook中的函数列表。以下为部分基础命令:

Esc: 使用这一快捷键可直接切换到命令模式。这也是用方向键在notebook中导航的方式。

处于命令模式时:

• A和B:键入新单元格,上移([A]bove)或下移([B]elow)现有单元格。

• M: 将现有单元格markdown( [M]arkdown)。

• Y: 将现有单元格改为代码。

• D,D:确认删除 ([D]efinetly [D]eletes)现有单元格。

Enter: 对现有单元格进行返回编辑模式的操作。

处于编辑模式时:

• Shift + Tab:给键入现有单元格的目标显示Docstring (文档字符串) —— 长按快捷键切换文档模式。

• Ctrl + Shift + -:将现有单元格从光标停留处分离。

• Esc + F:查找替换不含输出的代码。

• Esc + O:切换单元格输出。

选择多个单元格:

• Shift + Down和Shift + Up: 向下或向上选择下一个单元格。个人认为可以使用演绎法进行判别。

• Shift + M: 合并选中的单元格。

• 请注意,一旦单元格被选中,则可以批量删除/复制/粘贴/运行。

#6: Jupyter (或IPython)每一单元格的多种输出

这个也不错。是否曾经想显示pandas数据帧(DataFrame)的the .head()和 the .tail()?但是却半途而废,因为要创建一个额外的代码单元格去运行.tail() ,这太麻烦了。别再害怕了,现在使用下列代码可以显示所有想要的输出:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

看,多个输出的实力在此:

3ayYbmR.jpg!web

小菜一碟

#7:不断扩充自己的Jupyter notebook

使用 RISE,就可以将Jupyter Notebook陆续转化为幻灯片形式。最棒的是,notebook仍是可用的,所以可以实现文稿演示的同时实时编码!

根据个人系统环境,通过conda或者pip都可以安装 RISE以使用该工具:

conda install -c conda-forge rise

/// OR ///

pip install RISE

现在就可以点击新按钮从notebook中创建完美的演示文稿了:

iM7fEbm.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK