社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用Python加速数据分析的10个简单技巧

网络大数据 • 4 年前 • 448 次点击  

提示和技巧,尤其是在编程领域,可能是非常有用的。有时,一个小技巧可以节省时间和生命。一个小的快捷方式或附加组件有时会被证明是天赐之物,并能真正提高生产力。因此,下面是我最喜欢的一些提示和技巧,我将它们以本文的形式一起使用和编译。有些可能是我们相当熟悉的,有些可能是新的,但我确信它们将在你下一次处理数据分析项目时派上用场。

1.分析pandas数据帧


Profiling(分析)是一个帮助我们理解数据的过程,而Pandas Profiling就是执行这一过程的python包。这是一种对Pandas Dataframe(数据帧)进行探索性数据分析的简便、快速的方法。Pandas的df.describe()和df.info()函数通常用作EDA过程的第一步。但是,它只提供了一个非常基本的数据概览,对于大型数据集的情况并没有多大帮助。另一方面,Pandas Profiling(分析)函数使用df.profile_report()对pandas数据帧进行了扩展,以便快速进行数据分析。它用一行代码显示了很多信息,在交互式HTML报告中也是如此。

对于一个给定的数据集,pandas profiling(分析)包会计算以下统计数据:

Pandas Profiling 包计算出的统计数据.

安装

用法

我们来使用古老的titanic数据集来演示多功能python分析器的功能。

编者注:本文发布一周后,Pandas-Profiling发布了一个重大的升级版本——2.0.0。语法发生了一些变化,事实上,它的功能已经包含在pandas本身中了,并且报告也变得更加全面。下面是最新的用法语法:

Usage

要在 Jupyter notebook中显示报告,请运行以下代码:

你只需要这一行代码就可以在一个Jupyter notebook中显示数据分析报告。报告非常详细,包括了必要的图表。

你也可以使用以下代码将这个报告输出到一个交互式HTML文件中。

查阅文档获取更多细节和例子。

2.为pandas 图表带来交互性


Pandas有一个内置的.plot()函数,它是DataFrame类的一部分。然而,使用该函数呈现的可视化效果并不具有交互性,这使得它的吸引力降低。相反,也不能排除使用pandas. datafram .plot()函数绘制图表的方便性。如果我们不需要对代码进行重大修改,就可以使用pandas绘制出像plotly那样的交互式图表,那会怎么样呢?实际上,你可以使用Cufflinks库做到这一点。

Cufflinks库结合了plotly的强大功能和pandas的灵活性,便于轻松绘图。现在我们来看看如何安装这个库并让它在pandas中运行。

安装

用法

是时候看看使用Titanic数据集展开的神奇之处了。

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

右边的可视化显示的是静态图表,而左边的图表是交互式的,并且更加详细,所有这些都没有对语法进行任何重大更改。

3. 一点魔法


魔法命令是Jupyter Notebook中的一组方便的函数,旨在解决标准数据分析中的一些常见问题。你可以通过%lsmagic命令来查看所有可用的魔法命令。

所有可用魔法函数的列表

魔法命令有两种类型: line magics(行魔法)和cell magics(单元魔法),前者以单个%字符作为前缀,并在一行输入上进行操作;后者与两个%%前缀关联,并在多行输入上进行操作。如果将魔法函数的选项设置为1时,不需要键入初始%就可调用它。

我们来看看在常见的数据分析任务中可能有用的一些魔法函数:

% pastebin

%pastebin将代码上传到Pastebin并返回其url。Pastebin是一个在线内容托管服务,我们可以在其中存储纯文本,如源代码片段,然后可以将url与他人共享。事实上,Github gist也类似于Pastebin,尽管它有版本控制。

我们假设有一个包含以下内容的python脚本file.py:

在Jupyter Notebook中使用%pastebin生成一个pastebin的url地址.

%matplotlib notebook

%matplotlib inline函数用于在Jupyter notebook中呈现静态matplotlib绘图。尝试用notebook替换inline部分,你就可以轻松获得可缩放和可调整大小的绘图。确保在导入matplotlib库之前调用该函数。

%matplotlib inline 对比 %matplotlib notebook

%run

%run函数会在一个notebook中运行一个python脚本。

%%writefile

%%writefile 会将单元格的内容写入文件。这里的代码将被写入一个名为foo.py的文件,并保存在当前目录中。

%%latex

%%latex函数会将单元格的内容呈现为LaTeX。它对在单元格中编写数学公式和方程很有用。

4.发现和消除错误


Interactive debugger(交互式调试器)也是一个magic函数,但是我已经将它单独归为一类。如果在运行代码单元格时出现异常,请在一个新行中键入%debug并运行它。这会打开一个交互式调试环境,它会将你带到异常发生的位置。你还可以检查程序中分配的变量的值,并在这里执行操作。要退出这个调试器,请按q。

5. 打印输出也可以很漂亮


如果你想为你的数据结构生成美观的表示形式,pprint是首选模块。它在打印字典或JSON数据时特别有用。我们来看一个同时使用print和pprint显示输出的例子。

6. 让注释突出显示


我们可以在Jupyter Notebook中使用信息提示/备注框来醒目显示一些重要的或任何需要突出的东西。注释的颜色取决于你指定的提示类型。你只需在需要高亮显示的单元格中添加以下任何或所有代码即可。

蓝色信息提示框: 信息

黄色信息提示框: 警告

绿色提示框: 成功

红色提示框: 危险

7.打印一个单元格中的所有输出


假设有一个含有以下代码行的Jupyter Notebook单元格:

只打印最后一个输出是单元格的一个正常属性,而对于其他输出,我们需要添加print()函数。事实上,我们只要在notebook的顶部添加以下代码片段,就可以打印出所有输出。

现在所有的输出一个接一个的被打印出。

还原到原始设置:

8.使用‘i’选项运行python脚本


从命令行运行python脚本的一种典型方法是: python hello.py。但是,如果你在运行相同的脚本时添加一个附加的-i,例如python -i hello.py,它会提供更多的优点。我们来一探究竟。

首先,一旦程序结束,python并不会退出解释器。因此,我们可以检查变量的值和程序中定义的函数的正确性。

其次,我们可以很容易地使用以下代码调用python调试器,因为我们仍然在解释器中:

这会将我们带到异常发生的位置,然后我们就可以处理代码。

这个技巧的初始来源。(http://www.bnikolic.co.uk/blog/python-running-cline.html )

9.自动对代码进行注释


Ctrl/Cmd + / 会自动注释单元格中选定的行。再次敲击该组合键将取消对同一行代码的注释。

10.能删除是人,能恢复是神


你是否曾经不小心删除了Jupyter Notebook中的一个单元格?如果是,那么这里有一个快捷方式可以撤消此删除操作。

如果你删除了一个单元格的内容,按CTRL/CMD+Z可以很容易地恢复它

如果你需要恢复一个全部删除的单元格,请点击ESC+Z或EDIT > Undo Delete Cells

结论


在本文中,我列出了在使用Python和JupyterNotebook时收集到的主要技巧。我相信它们会对你有用,你也会从这篇文章中学到一些东西,从而实现轻松编码!

英文原文:https://qiniumedia.freelycode.com/vcdn/1/%E4%BC%98%E8%B4%A8%E6%96%87%E7%AB%A0%E9%95%BF%E5%9B%BE3/10-simple-hacks-to-speed-up-your-data-analysis.pdf

译者:野生大熊猫

往期精彩回顾

最严《数据安全管理办法》征求意见 科技圈哀嚎声一片

一文解读"互联网女皇”-2019年互联网趋势报告

17款数据可视化工具,让你的数据更美观!

全球视角下:中美科技实力对比

2019年中国智慧城市发展报告

2018全球人工智能发展报告》:一览全球AI领域竞争态势

强推!十大顶级大数据可视化工具

埃森哲是如何系统化做好数据分析?



网络大数据

 (ID:raincent_com

网络大数据 www.raincent.com

致力于打造中国最专业的网络大数据科学门户网站。


识别二维码,关注网络大数据


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/35836
 
448 次点击