7个Python特殊技巧,助力你的数据分析工作之路
选自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() 这一简单方法的结果:
使用该工具只需安装和导入 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 命令,即可执行想要运行的任意代码部分:
上图中发生了什么?
我们有一个函数,它以列表为输入,并对所有的偶数取平方值。
我们运行函数,但是出了些问题。但是我们并不知道怎么回事!
对该函数使用%debug 命令。
让调试器告诉我们 x 和 type(x) 的值。
问题显而易见:我们把'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 InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
下图展现了多个输出的结果:
7. 为 Jupyter Notebook 即时创建幻灯片
使用 RISE,你可以仅通过一次按键将 Jupyter Notebook 即时转变为幻灯片。而且 notebook 仍然处于活跃状态,你可以在展示幻灯片的同时执行实时编码!
要想使用该工具,你只需通过 conda 或 pip 安装 RISE 即可。
conda install -c conda-forge rise
或者
pip install RISE
现在,你可以点击新按钮,为 notebook 创建不错的幻灯片了:
转自:机器之心 公众号;
「END」
来和小伙伴们一起向上生长呀!
扫描下方二维码,添加小詹微信,可领取千元大礼包并申请加入 Python 学习交流群,群内仅供学术交流,日常互动,如果是想发推文、广告、砍价小程序的敬请绕道!一定记得备注「交流学习」,我会尽快通过好友申请哦!
????长按识别,添加微信
(添加人数较多,请耐心等待)
????长按识别,关注小詹
(扫码回复 1024 领取程序员大礼包)
7个Python特殊技巧,助力你的数据分析工作之路相关推荐
- 为SEO学习Python 分享7个技巧帮助你做数据分析工作
作为一名SEO专业人士,我的日常任务也在不断学习.在去年年底开始学习Python之后,我发现自己越来越多地将我所学的东西付诸实践. 这包括相当简单的任务,例如比较字数或状态码随时间的变化,以及分析包括 ...
- 收藏喜+1!值得使用的100个Python小技巧
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...
- 快收藏!整理了 100 个 Python 小技巧
作者:小F 来源: 法纳斯特 目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习. ...
- 掌握这10个Python小技巧,让你敲代码速度快5倍不止
问各位一个问题,你有木有经历过这一的场景: 老板让你和同事同事敲代码,同样的时间,别人却比你做的快了很多倍,而且做的还很不错? 其实很多时候也不是你不厉害,更多的是很多基础的效率操作,你没有发现. P ...
- python正确的赋值语句-Python 赋值语句技巧之序列解包
python赋值语句技巧之序列解包sequence unpacking,是python语言赋值语句的一种技巧方法,在给多个python 变量命名同时赋值时是很有效率的一种方法. 赋值语句序列解包概念 ...
- 网站推广专员浅析网站建设实用技巧助力网站推广优化
通常企业网站建设大多是为了工作需求满足商务活动效益提升,企业网站的建设可向目标用户群体提前展示相关活动信息,通过互联网技术进行宣传预热以达到期望目标.然而在企业网站建设过程中对于站长来说,想要满足企业 ...
- python编程输入标准-揭秘python编程技巧
揭秘python编程技巧 一.python的标准输入和输出[root@133 wc]# vim stdin.py #!/usr/bin/python #encoding:utf-8 import sy ...
- python hist函数_虎哥的python小技巧放送之绘制统计图(2)
先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...
- 3分钟学会python_3分钟学会一个Python小技巧
Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...
最新文章
- malloc函数分配失败处理的严重性
- Linux内核分析——第五章 系统调用
- 【云中沙箱】如何快速使用阿里云快速搭建论坛网站?
- 闲聊位置之 POI数据
- OpenJudge计算概论-字符串排序
- docker更换国内镜像源
- 一张图教你玩转阿里云双11上云狂欢节
- MySQL实现类似Oracle的序列
- Android下载网络图片并缓存
- 判断浏览器的cookie是否开启
- 虚拟机查看HWADDR(即MAC)地址
- put url带参数_Superlurl 一款开源关键词URL采集工具
- ssm+Vue计算机毕业设计在线答题系统(程序+LW文档)
- 计算机软件总体上分为,计算机软件分为哪两大类?它们各自的作用是什么?
- pyqt QLabel详细用法
- 【PATB1041】考试座位号(题解+拓展)
- 安卓海豚wii模拟器_dolphin模拟器安卓版
- STM32F103—有关BH1750(GY-302)环境光强度传感器模块的代码
- 技术提升了,钱自然就来了:盘点这段时间我挣钱的感受
- 关于手机刷机备份资料的问题
热门文章
- mysql主从同步从库上Slave_IO_Running: Connecting问题
- php 判断http还是https,以及获得当前url的方法
- PHP使用Charles抓包手机
- Vue进行格式化时间Y-m-d h:m:s
- c#erp项目源码 mysql_Jsp+Ssm+Mysql实现图书馆预约占座管理系统项目源码(可带论文文档)...
- JS实现倒计时三秒钟跳转到新的页面
- 本机显示服务器文本信息,打开文档显示云服务器
- mysql 视图触发器,MySql视图触发器存储过程详解
- javascript 查看变量类型
- java 中 Object XML 互转,最终选择Xstream