热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

这10个小技巧,让你的Python数据分析加速50%!

来自公众号:优达学城Udacity作者:ParulPandey,译者:欧剃,编辑:肉松原文链接&

来自公众号:优达学城Udacity

作者:Parul Pandey,译者:欧剃,编辑:肉松

原文链接:https://towardsdatascience.com/10-simple-hacks-to-speed-up-your-data-analysis-in-python-ec18c6396e6b

在编程的世界里,有时候一些小窍门和小技巧,能帮你节省不少时间和生命。有时可能是一个不起眼的快捷操作,或者一个小小的插件。希望今天分享的这 10 个超级实用的 Python 数据分析技巧,可以“撬动”你的生产力!

■ 1 对 pandas 数据表进行预览分析(Profiling)

预览分析 是一个能帮助我们理解数据的过程。Pandas Profiling 这个 Python 库就是专门用来进行预览分析的,它能让你简单而快速地对 Pandas 数据表进行探索性数据分析(Exploratory Data Analysis,缩写 EDA)。在 EDA 的第一步,我们往往会用到 pandas 的 df.describe() 和 df.info() 函数,但它们只给出非常基本的数据概况,在处理大型数据集的时候能起到的帮助十分有限。

另一方面,使用 Pandas Profiling 提供的 df.profile_report() 函数,你只需要一行代码就能快速生成一个包含了大量详细信息的交互式 HTML 报告。

对于给出的某个具体数据集,Pandas Profiling 库能计算出以下这些统计信息:

安装

pip install pandas-profiling

conda install -c anaconda pandas-profiling

使用

让我们用泰坦尼克号乘客的老古董数据集来举个栗子:

要在 Jupyter notebook 里显示数据预览分析的结果,你只需要这么一行代码就够了。生成的结果相当详细,包含了各种你可能会需要的图表。

你还可以用这样的代码把结果导出成一个交互式 HTML 文件:

你可以在这个库的官方文档(链接见文末)中查询到更详细的用法和实例代码。

■ 2 创建可交互的 Pandas 图表

Pandas 库已经为数据表(DataFrame 类)内置了一个 .plot() 的绘图函数。然而,用这个函数生成的可视化结果并不支持交互,也就没那么引人瞩目。而另一方面,pandas.DataFrame.plot() 函数生成图表的便利性也是无可取代的。

那么,我们能不能在不对代码进行太多修改的情况下,用 Pandas 绘制出交互式图表呢?事实上,你可以通过 Cufflinks 库来实现这个目的。

安装

安装 cufflinks 前,要先安装它依赖的 Plotly 库:

使用

还是以泰坦尼克号数据集为例,用这一行代码演示一下黑魔法:

df.iplot()

(df.iplot() 和 df.plot() 的对比)

比起下图的静态图表,上图的交互式图表能显示出更详细的信息,而这一切并不需要太多的语法变化。

你可以在官方示例(链接见文末)中看到更详细的例子。

 3 来一点“魔法” 

Jupyter Notebooks 中的“魔法命令”是一系列便捷的函数,用于解决标准数据分析时的一些常见问题。你可以用 %lsmagic 命令来列出所有的“魔法命令”。

(所有可用的“魔法命令”的列表)

魔法命令又分成两类,一种是行魔法,前缀为单个 % 字符,只作用于单行代码;另一种是 单元格魔法,以 %% 为前缀,能作用于整个单元格。如果 Notebook 的 Automagic 选项设置为 1 ,你可以省略单行魔法命令的前缀 %。

让我们看看几个在通常的数据分析中十分有用的命令吧。

%pastebin

%pastebin 命令将一段代码上传到 Pastebin 上,并返回对应的链接。Pastebin 是一个在线剪贴板分享服务,用户可以在上面存储各种纯文本内容(比如代码片段),然后将对应的链接分享给其他人。事实上 Github gist 也是一个类似 pastbin 的服务,只不过它带有版本控制功能。

假设有一个 python 脚本文件 file.py,内容如下:

然后在 Jupyter Notebook 里用 %pastebin 生成一个分享链接:

%matplotlib notebook

%matplotlib inline 命令会让静态的 matplotlib 图表在 Jupyter notebook 的运行结果区域内显示。如果你把命令中的 inline 换成 notebook,你还能轻松获得一个可缩放和调整大小的图表。你应当在导入 matplotlib 库之前先运行 %matplotlib 命令。

(%matplotlib inline 和 %matplotlib notebook 的对比)

%run

%run 命令可以在 notebook 中运行外部 python 脚本:

%run file.py

%%writefile

%%writefile 能将一个单元格的内容保存成文件。下面这段代码就会被写入 foo.py 文件中,并保存在当前目录下。

%%latex

%%latex 命令让你可以用 LaTeX 语法渲染单元格的内容。在编写数学公式和方程的时候很好用。

■ 4 排查代码错误

其实交互式调试器(interactive debugger)本身也是一个魔法命令,但我把它单独拿出来说。

如果你在运行一个代码单元格的时候出现了异常,你可以新起一行,运行 %debug 命令。这将打开一个交互式的调试环境,把你带到异常发生的位置。你可以在此检查程序中各个变量的值,并执行各种操作。输入 q 退出调试器。

■ 5 美化 print 输出

如果你想为数据结构生成美观的输出信息,pprint 就是首选的模块。它在输出字典对象或 JSON 数据的时候特别有用。下面是一个用 print 和 pprint 输出信息的例子:

■ 6 显示醒目的注释

在 Jupyter Notebooks 中,你可以用警告/注释框来高亮显示一些重要或需要注意的信息。注释框的颜色取决于你指定的“警告”类型。你可以在需要的地方试试下面几种代码:

蓝色框:提示


提示: 使用蓝色提示框(属性为alert-info)来显示提示和注释。
如果是注释,则可以省略上面的“提示”字样。

黄色框:示例


示例: 使用黄色提示框(属性为alert-warning)来显示额外的示例或数学公式。

绿色框:相关


绿色提示框(属性为alert-success)一般只在必要的时候使用,来显示和内容相关的链接等。

红色框:警告


警告: 红色提示框(属性为alert-danger)一般不常用,不过可以用在警告用户不要删除一些重要代码等情况。

下面是几种提示的运行效果:

■ 7 把一个单元格中的所有输出都显示出来

假设有一个Jupyter Notebook 的单元格里,有这样一段代码:

对代码单元格来说,通常只输出单元格最后一个表达式的结果。如果需要显示其他表达式的结果,则需要手动加上 print() 函数。不过,也可以通过在 notebook 的开头运行这样一段代码,让单元格显示所有表达式的结果:

再运行下,就会发现所有表达式的值都被依次打印出来了:

要恢复成默认设置,可以用:

■ 8 使用 '-i' 参数运行 python 脚本

运行一个 Python 脚本的典型做法是在命令行下输入 python hello.py。然而,如果你多加一个 -i 参数,也就是用 python -i hello.py 来运行脚本,会带来一些额外的好处:

首先,当程序运行结束,或是异常退出的时候,python 解释器并不会被关闭。在这种情况下,我们可以检查变量的值,核对函数是否正常工作等。

其次,既然解释器还在,我们可以很容易地调用 Python 调试器来排查问题:

这将会带我们到程序出错的地方,方便我们检查并修改代码。

■ 9 自动注释掉当前行

在编辑器中按下 Ctrl + /(Mac用户是 ⌘ + /)快捷键,可以自动注释掉光标所在的行。再按一次取消注释。

■ 10 手残误删,这样能救

你是否也曾不小心误删了 Jupyter Notebook 中的某个单元格?记住这个快捷键,你还有救:

如果你是不小心删除了单元格中的一部分内容,可以用 Ctrl + Z 快捷键(Mac 用户是 ⌘ + Z)撤销。

如果你需要恢复整个被删除的单元格,请按 ESC+Z,或在菜单上选择编辑(EDIT)-> 撤销删除(Undo Delete Cells)

这些技巧,在日常使用 Python 和 Jupyter Notebooks 进行数据分析的时候都会经常用到。希望它们也能让你更快更高效地完成数据分析工作。如果你有更加黑科技的数据分析技巧,欢迎在下面留言分享鸭。

------end------


推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
author-avatar
Jie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有