这10个小技巧,让你的Python数据分析加速50%!
来自公众号:优达学城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 中,你可以用警告/注释框来高亮显示一些重要或需要注意的信息。注释框的颜色取决于你指定的“警告”类型。你可以在需要的地方试试下面几种代码:
蓝色框:提示
<div class="alertalert-block alert-info">
<b>提示:</b> 使用蓝色提示框(属性为alert-info)来显示提示和注释。
如果是注释,则可以省略上面的“提示”字样。
</div>
黄色框:示例
<div class="alertalert-block alert-warning">
<b>示例:</b> 使用黄色提示框(属性为alert-warning)来显示额外的示例或数学公式。
</div>
绿色框:相关
<div class="alert alert-block alert-success">
绿色提示框(属性为alert-success)一般只在必要的时候使用,来显示和内容相关的链接等。
</div>
红色框:警告
<div class="alert alert-block alert-danger">
<b>警告:</b> 红色提示框(属性为alert-danger)一般不常用,不过可以用在警告用户不要删除一些重要代码等情况。
</div>
下面是几种提示的运行效果:
■ 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------
这10个小技巧,让你的Python数据分析加速50%!相关推荐
- 10 个小技巧:快速用 Python 进行数据分析
一些小提示和小技巧可能是非常有用的,特别是在编程领域.有时候使用一点点黑客技术,既可以节省时间,还可能挽救"生命". 一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正 ...
- python编程遵循哪些规律_编程语言软件开发10个小技巧,Java、python、前端等都遵循此规律,108G资料放送中!...
随着互联网日趋迅猛,编程已经在我们生活当中无处不在了. 众所周知,程序员的工资都很不错,于是越来越多的人,都想加入到开发的行业中来. 那么,开发到底难不难学? 其实,每一门程序语言都是一个微型的完整的 ...
- ☆ 10个小技巧,让你的 Python 代码更加优雅~ ☆
10个小技巧改进的 Python 代码,让你的代码更加简洁.更加 Python 化. 1. 用enumerate代替range 如果你需要遍历一个列表,并且需要同时获取索引和元素,大多数情况可能会使用 ...
- omnigraffle 画曲线_OmniGraffle使用的10个小技巧
OmniGraffle是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上.在很多方面,OmniGraffle都类似于Microsoft Visio.下 ...
- 聊聊保证线程安全的10个小技巧
`` 前言 对于从事后端开发的同学来说,线程安全问题是我们每天都需要考虑的问题. 线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题. 比如:变量 ...
- Word2003的10个小技巧(转)
Word2003的10个小技巧(转) word2003是现在比较流行的文字处理软件之一,也是Office2003办公套装软件的一个重要组成部分.以下是word2003的十个实用小技巧,希望大家在今后使 ...
- 后端开发—10个小技巧教你保证线程安全
前言 对于从事后端开发的同学来说,线程安全问题是我们每天都需要考虑的问题. 线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题. 比如:变量a=0 ...
- omnigraffle 导出html,OmniGraffle使用的10个小技巧
原文发表于http://www.weste.net/2014/3-7/95727.html OmniGraffle是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和i ...
- 你一定要知道的保证线程安全的10个小技巧
导语 对于从事后端开发的同学来说,线程安全问题是我们每天都需要考虑的问题. 线程安全问题通俗的讲:主要是在多线程的环境下,不同线程同时读和写公共资源(临界资源),导致的数据异常问题. 比如:变量a=0 ...
最新文章
- html实现以秒为单位倒数,跳转新的页面
- dedecms教程:搜索页显示条数更改
- python让用户输入字符串_当用户输入字符串而不是整数时,如何保护我的python代码?...
- 微信小程序----手势锁详解
- 机器学习中的相似性度量总结
- python怎么播放mp3_python上播放mp3歌曲
- 谷歌浏览器外贸版_针对谷歌SEO,你有哪些值得推荐的工具、插件、网站、app,或者技巧分享?...
- 更改一个视频文件夹下视频文件的文件名
- python智能工厂_智能工厂关键技术应用 第八讲 智能工厂的Python编程应用
- 第六次 Scrum Meeting
- 计算C(n,0)+C(n,1)+...+C(n,m)--Problem B. Harvest of Apples
- Struts2.0 xml文件的配置(package,namespace,action)
- 关于C++编写com和调用com组件的小例子以及个人所犯错误见解
- C调用系统命令ping崩溃日志
- 74ls20设计半加器_实验二——组合逻辑电路的设计与测试.ppt
- 认识电子计算机评课稿,《走进计算机》评课稿.docx
- 解决docker报错:listing workers for Build: failed to list workers: Unavailable: connection error: desc =
- Chrome安装插件提示 出现错误 image decode failed
- Java 常用内置对象
- VMware Workstation 12序列号: 5A02H-AU243-TZJ49-GTC7K-3C61N
热门文章
- UI设计培训技术教程之字体排版规则
- 谷歌书签同步到gitee
- 0基础用vagrant 快速构建larval开发环境 (我杨某人尽力描述了,都有从0介绍)
- video标签无法播放视频
- 中国工程师最喜欢的10大TWS耳机电源管理芯片,钰泰ETA9084名列其中
- 《你的孤独,虽败犹荣》读后感
- 忆鲁迅《故乡》中的一句话
- 怎样搜索计算机文档,怎么样快速搜索电脑文件 Windows系统秒搜电脑文件
- C语言——连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题, 如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做, 10道题做完
- LNMP环境搭建(用阿里云epel源安装)