2021-11-04 分类: 网站建设
本文列举了一些提升或加速日常数据分析工作的技巧,包括:
1.PandasProfiling
2.使用Cufflinks和Plotly绘制Pandas数据
3.IPython魔术命令
4.Jupyter中的格式编排
5.Jupyter快捷键
6.在Jupyter(或IPython)中使一个单元同时有多个输出
7.为JupyterNotebook即时创建幻灯片
1.PandasProfiling
该工具效果明显。下图展示了调用df.profile_report()这一简单方法的结果:
使用该工具只需安装和导入PandasProfiling包。
本文不再详述这一工具,如欲了解更多,请阅读:
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,只需在终端中运行!pipinstallcufflinks--upgrade即可。查看下图:
效果好多了!
注意,上图唯一改变的是Cufflinkscf.go_offline()的导入和设置,它将.plot()方法变为.iplot()。
其他方法如.scatter_matrix()也可以提供非常棒的可视化结果:
需要做大量数据可视化工作的朋友,可以阅读Cufflinks和Plotly的文档,发现更多方法。
Cufflinks文档:https://plot.ly/ipython-notebooks/cufflinks/
Plotly文档:https://plot.ly/
3.IPython魔术命令
IPython的「魔术」是IPython基于Python标准语法的一系列提升。魔术命令包括两种方法:行魔术命令(linemagics):以%为前缀,在单个输入行上运行;单元格魔术命令(cellmagics):以%%为前缀,在多个输入行上运行。下面列举了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 >Thisis<b>fancy</b>!</div>
红色、轻微慌张:
<div >Thisis<b>baaaaad</b>!</div>
绿色、平静:
<div >Thisis<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)中使一个单元同时有多个输出
想展示pandasDataframe的.head()和.tail(),但由于创建运行.tail()方法的额外代码单元过于麻烦而不得不中途放弃,你是否有过这样的经历?现在不用怕了,你可以使用以下代码行展示你想展示的输出:
fromIPython.core.interactiveshellimportInteractiveShellInteractiveShell.ast_node_interactivity="all"
下图展现了多个输出的结果:
7.为JupyterNotebook即时创建幻灯片
使用RISE,你可以仅通过一次按键将JupyterNotebook即时转变为幻灯片。而且notebook仍然处于活跃状态,你可以在展示幻灯片的同时执行实时编码!
要想使用该工具,你只需通过conda或pip安装RISE即可。
condainstall-cconda-forgerise
或者
pipinstallRISE
现在,你可以点击新按钮,为notebook创建不错的幻灯片了:
名称栏目:7个Python特殊技巧,助力你的数据分析工作之路
本文地址:/news43/134343.html
成都网站建设公司_创新互联,为您提供微信公众号、做网站、用户体验、关键词优化、网页设计公司、定制开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容