7 大 Python 特殊技巧提升数据分析能力

栏目: IT技术 · 发布时间: 3年前

内容简介:如何提升数据分析能力?Peter Nistrup 根据自身经验列出了 7 个有用工具。本文列举了一些提升或加速日常数据分析工作的技巧,包括:1. Pandas Profiling

选自TowardsDataScience

作者:Perter Nistrup

机器之心编译

参与:魔王

如何提升数据分析能力?Peter Nistrup 根据自身经验列出了 7 个有用工具。

本文列举了一些提升或加速日常数据分析工作的技巧,包括:

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() 这一简单方法的结果:

7 大  <a href='https://www.codercto.com/topics/20097.html'>Python</a>  特殊技巧提升数据分析能力

使用该工具只需安装和导入 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:

7 大 Python 特殊技巧提升数据分析能力

有点无聊?

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

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

7 大 Python 特殊技巧提升数据分析能力

效果好多了!

注意,上图唯一改变的是 Cufflinks cf.go_offline() 的导入和设置,它将 .plot() 方法变为 .iplot()。

其他方法如 .scatter_matrix() 也可以提供非常棒的可视化结果:

7 大 Python 特殊技巧提升数据分析能力

需要做大量数据可视化工作的朋友,可以阅读 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 命令将提供所有可用魔术命令的列表:

7 大 Python 特殊技巧提升数据分析能力

%debug: 交互式 debug

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

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

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

7 大 Python 特殊技巧提升数据分析能力

上图中发生了什么?

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

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

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

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

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

这对于更复杂的函数非常有用。

%store: 在 notebook 之间传递变量

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

7 大 Python 特殊技巧提升数据分析能力

  • %store [variable] 存储变量。

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

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

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

7 大 Python 特殊技巧提升数据分析能力

%%time: 计时魔法命令

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

7 大 Python 特殊技巧提升数据分析能力

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

在 notebook 中写复杂函数或类,且想将其保存到专属文件中时,该魔法命令非常有用。只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可:

7 大 Python 特殊技巧提升数据分析能力

如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。在其他 notebook 中也可以这样,只要与 utils.py 文件属于同一个目录即可。

4. Jupyter 中的格式编排

这个工具很酷!Jupyter 考虑到 markdown 中存在 HTML / CSS 格式。以下是我最经常使用的功能:

蓝色、时尚:

<span><span>&lt;div class=&quot;alert alert-block alert-info&quot;&gt;</span></span>

<span><span> This is &lt;b&gt;fancy&lt;/b&gt;!</span></span>

<span><span>&lt;/div&gt;</span></span>

红色、轻微慌张:

<span><span>&lt;div class=&quot;alert alert-block alert-danger&quot;&gt; </span></span>

<span><span> This is &lt;b&gt;baaaaad&lt;/b&gt;!</span></span>

<span><span>&lt;/div&gt;</span></span>

绿色、平静:

<span><span>&lt;div class=&quot;alert alert-block alert-success&quot;&gt;</span></span>

<span><span> This is &lt;b&gt;gooood&lt;/b&gt;!</span></span>

<span><span>&lt;/div&gt;</span></span>

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

7 大 Python 特殊技巧提升数据分析能力

当你想以 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() 方法的额外代码单元过于麻烦而不得不中途放弃,你是否有过这样的经历?现在不用怕了,你可以使用以下代码行展示你想展示的输出:

<span><span>from IPython.core.interactiveshell import InteractiveShell</span></span>

<span><span>InteractiveShell.ast_node_interactivity = &quot;all&quot;</span></span>

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

7 大 Python 特殊技巧提升数据分析能力

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

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

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

conda install -c conda-forge rise

或者

pip install RISE

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

7 大 Python 特殊技巧提升数据分析能力

推荐阅读: (点击标题即可跳转)

Python IDE 优缺点列表

赶紧收藏!非常实用的 30 个 Python 技巧

8 个 Python 高效数据分析的技巧

推荐 13 个 Python 新手练级项目

10分钟用 Python 编写一个贪吃蛇小游戏

7 大 Python 特殊技巧提升数据分析能力

如果你有写博客的好习惯

欢迎投稿

点个在看,小生感恩 :heart:


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PHP for the World Wide Web, Second Edition (Visual QuickStart Gu

PHP for the World Wide Web, Second Edition (Visual QuickStart Gu

Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99

So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具