专业网站建设B/S软件开发专业微信营销专业技术建设团队做客户满意度最高的软件公司
郑州网站建设、郑州网站开发
 

7个Python特殊技巧,助力你的数据分析工作之路

作者:网站建设出处:学众科技发布时间:2019年11月06日点击数:889

本文枚举了一些提升或加速一样平常数据剖析事情的技巧,包罗:

1. Pandas Profiling

2. 使用 Cufflinks 和 Plotly 绘制 Pandas 数据

3. IPython 魔术下令

4. Jupyter 中的名堂编排

5. Jupyter 快捷键

6. 在 Jupyter(或 IPython)中使一个单元同时有多个输出

7. 为 Jupyter Notebook 即时建设幻灯片

1. Pandas Profiling

该工具效果显着。下图展示了挪用 df.profile_report() 这一简朴要领的效果:

使用该工具只需安装和导入 Pandas Profiling 包。

本文不再详述这一工具,如欲相识更多,请阅读:

https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d

2. 使用 Cufflinks 和 Plotly 绘制 Pandas 数据

「履历富厚的」数据科学家或数据剖析师大多对 matplotlib 和 pandas 很熟悉。也就是说,你只需挪用 .plot() 要领,即可快速绘制简朴的 pd.DataFrame 或 pd.Series:

有点无聊?

这已经很好了,不外是否可以绘制一个交互式、可缩放、可扩展的全景图呢?是时间让 Cufflinks* *出马了!(Cufflinks 基于 Plotly 做了进一步的包装。)

在情形中安装 Cufflinks,只需在终端中运行! pip install cufflinks --upgrade 即可。审查下图:

效果许多几何了!

注重,上图*****改变的是 Cufflinks cf.go_offline() 的导入和设置,它将 .plot() 要领变为 .iplot()。

其他要领如 .scatter_matrix() 也可以提供很是棒的可视化效果:

需要做大量数据可视化事情的朋侪,可以阅读 Cufflinks 和 Plotly 的文档,发现更多要领。

  • Cufflinks 文档:https://plot.ly/ipython-notebooks/cufflinks/

  • Plotly 文档:https://plot.ly/

3. IPython 魔术下令

IPython 的「魔术」是 IPython 基于 Python 尺度语法的一系列提升。魔术下令包罗两种要领:行魔术下令(line magics):以 % 为前缀,在单个输入行上运行;单元格魔术下令(cell magics):以 %% 为前缀,在多个输入行上运行。下面枚举了 IPython 魔术下令提供的一些有用功效:

%lsmagic:找出全手下令

若是你只记得一个魔术下令,那必须得是这一个。执行 %lsmagic 下令将提供所有可用魔术下令的列表:

%debug:交互式 debug

这可能是我最常使用的魔术下令了。

大部门数据科学家都遇到过这种情形:执行的代码块一直 break,你无望地写了 20 个 print() 语句,想输出每个变量的内容。然后,当你最终修复问题后,你还得返回并再次删除所有 print() 语句。

不外以后再也不用这样了。遇到问题后只需执行 %debug 下令,即可执行想要运行的恣意代码部门:

上图中发生了什么?

  1. 我们有一个函数,它以列表为输入,并对所有的偶数取平方值。

  2. 我们运行函数,可是出了些问题。可是我们并不知道怎么回事!

  3. 对该函数使用%debug 下令。

  4. 让调试器告诉我们 x 和 type(x) 的值。

  5. 问题显而易见:我们把'6'作为字符串输入到函数中了!

这对于更重大的函数很是有用。

%store:在 notebook 之间转达变量

这个下令也很酷。假设你花了一些时间洗濯 notebook 中的数据,现在你想在另一个 notebook 中测试一些功效,那么你是在统一个 notebook 中实现该功效,照旧生计数据并在另一个 notebook 中加载数据呢?使用%store 下令后,这些操作都不需要!该下令将存储变量,你可以在其他恣意 notebook 中检索该变量:

  • %store [variable] 存储变量。

  • %store -r [variable] 读取/检索存储变量。

%who:列出所有全局变量。

你是否遇到过,为变量赋值后却遗忘变量名的情形?或者不小心删掉了认真为变量赋值的单元格?使用%who 下令,你可以获得所有全局变量的列表:

%%time:计时邪术下令

使用该下令可以猎取 所有计时信息。只需对恣意可执行代码应用%%time 下令,你就可以获得如下输出:

%%writefile:向文件写入单元格内容

在 notebook 中写重大函数或类,且想将其生计到专属文件中时,该邪术下令很是有用。只需为函数或类的单元格添加 %%writefile 前缀和想要生计到的文件名即可:

如上所示,我们可以将建设的函数生计到 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>

下图展示了它们的运行历程:

当你想以 Notebook 名堂泛起一些发现时,这很是有用!

5. Jupyter 快捷键

想相识和学习键盘快捷键,你可以使用下令面板:Ctrl + Shift + P,猎取 notebook 所有功效的列表。下面选取了几个最基础的下令:

  • Esc:进入下令模式。在下令模式内,你可以使用偏向键在 notebook 内举行导航。

在下令模式内:

  • A 和 B:在当前单元格上方(Above)或下方(Below)插入新的单元格。

  • M:当前单元格转入 Markdown 状态。

  • Y:当前单元格转入 code 状态。

  • D,D:删除当前单元格。

  • Enter:当前单元格回到编辑模式。


在编辑模式内:

  • Shift + Tab:为你在当前单元格中键入的工具提供文档字符串(文档),一连使用该快捷键,可循环使用文档模式。

  • Ctrl + Shift + -:在光标所在处支解当前单元格。

  • Esc + F:查找并替换代码(不包罗输出)。

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

选择多个单元格:

  • Shift + Down 和 Shift + Up:选中下方或上方的单元格。

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

注重,选中多个单元格后,你可以批量执行删除/复制/剪切/粘贴/运行操作。

6. 在 Jupyter(或 IPython)中使一个单元同时有多个输出

想展示 pandas DataFrame 的 .head() 和 .tail(),但由于建设运行 .tail() 要领的稀奇代码单元过于贫困而不得不中途放弃,你是否有过这样的履历?现在不用怕了,你可以使用以下代码行展示你想展示的输出:

from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"

下图展现了多个输出的效果:

7. 为 Jupyter Notebook 即时建设幻灯片

使用 RISE,你可以仅通过一次按键将 Jupyter Notebook 即时转变为幻灯片。而且 notebook 仍然处于活跃状态,你可以在展示幻灯片的同时执行实时编码!

要想使用该工具,你只需通过 conda 或 pip 安装 RISE 即可。

conda install -c conda-forge rise

或者

pip install RISE

现在,你可以点击新按钮,为 notebook 建设不错的幻灯片了:

沙澧街