加速数据分析,这10个小技巧好用到哭

划重点!!!本文列举了一些使用Python和Jupyter Notebook的技巧,讨论了如何轻松分析数据以及如何进行格式化编码、输出和调试等操作。

成都创新互联专业为企业提供周口网站建设、周口做网站、周口网站设计、周口网站制作等企业网站建设、网页设计与制作、周口企业网站模板建站服务,十年周口做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

在编程领域,有时一个小技巧就能节省大量时间,甚至能起到救命的效果。这些“必杀技”往往能在未来的数据分析中发挥重大作用。

1. 分析Pandas数据框架

Profiling(分析)是一个帮助理解数据的过程,Pandas Profiling(数据预览分析)作为一个python工具包,就是用来帮助理解数据的。该工具能够简单快速地对熊猫数据框架进行探索性数据分析。pandas df.describe()和df.info()functions通常是EDA过程的第一步。然而,这个步骤只提供一个基本的数据预览,对大型数据集帮助不大。另外,Pandas Profiling功能使用df.profile_report()扩展了熊猫数据框架,可以快速进行数据分析。该功能仅用一行代码就可以显示很多信息,这也可以应用在交互式的HTML报告中。

对于给定数据集,数据预览分析包会处理以下数据:

Pandas Profiling工具包计算的统计数据

安装

 
 
 
 
  1. pip install pandas-profiling 
  2. or 
  3. conda install -c anaconda pandas-profiling 

使用

用古老的大数据集来演示python profiler的功能。

 
 
 
 
  1. #importing the necessary packages 
  2. import pandas as pd 
  3. import pandas_profiling 
  4. # Depreciated: pre 2.0.0 version 
  5. df = pd.read_csv('titanic/train.csv') 
  6. pandas_profiling.ProfileReport(df) 

最近,Pandas-Profiling发布了一个重要的2.0.0升级版本。事实上,该版本对语法作了一点改变,这个功能也已经包含在熊猫数据框架中了,报告也变得更加全面。以下是最新的语法用法:

使用

要在Jupyter笔记本中显示报告,并运行:

 
 
 
 
  1. #Pandas-Profiling 2.0.0 
  2. df.profile_report() 

这一行代码就是用户在Jupyter笔记本中显示数据分析报告所需的全部内容。显示的报告非常详细,必要时还包括图表。

通过下列代码用户还可以将该报告导出到交互式HTML文件中:

 
 
 
 
  1. profile = df.profile_report(title='Pandas Profiling Report') 
  2. profile.to_file(outputfile="Titanic data profiling.html") 

 

更多详细信息和示例:https://pandas-profiling.github.io/pandas-profiling/docs/

2. 增强Pandas plots的互动性

Pandas有一个内置的 .plot() 功能,是数据框架类的一部分。然而,该功能不尽人意的地方在于呈现的可视化不是交互式的。相反,用pandas.DataFrame.plot()功能绘制图表就很容易。如果不对代码做重大修改,可以绘制出像熊猫图表一样的交互式图表吗?答案是可以的,Cufflinks库能够帮助做到这一点。

Cufflinks库将plotly的功能与Pandas的灵活性结合起来,使绘图简单化。现在就来看看如何安装这个库,并让它在pandas上运行。

安装

 
 
 
 
  1. pip install plotly # Plotly is a pre-requisite before installing cufflinks 
  2. pip install cufflinks 

使用

 
 
 
 
  1. #importing Pandas  
  2. import pandas as pd 
  3. #importing plotly and cufflinks in offline mode 
  4. import cufflinks as cf 
  5. import plotly.offline 
  6. cf.go_offline() 
  7. cf.set_config_file(offline=False, world_readable=True) 

现在来看看大数据集的魔力

 
 
 
 
  1. df.iplot() 

 
 
 
 
  1. df.iplot() 与 df.plot() 

右边的可视化显示的是静态图表,而左边则是交互式图表,更为详细。这些图表在语法上都没有作出重大改变。

更多示例:https://github.com/santosjorge/cufflinks/blob/master/Cufflinks%20Tutorial%20-%20Pandas%20Like.ipynb

3. 少许魔法

魔法命令(Magic commands)是Jupyter笔记本中的一组便捷功能,旨在解决标准数据分析中的一些常见问题。在 %lsmagic的帮助下,用户可以看到所有可用的魔法功能。

所有可用魔法功能的清单

魔法命令有两种:行魔法,即以单个%字符为前缀,在单行输入上操作;单元格魔法,即以%%为前缀,在多行输入上操作。如果设置为1,则无需键入初始%即可调用魔术功能。

一起来看看两种魔法命令在常见数据分析任务中的应用:

  • % pastebin

%pastebin将代码上传到Pastebin并返回url地址。Pastebin属于在线内容托管服务,在这里,用户可以存储如源代码片段等纯文本,然后与他人共享网址。事实上,Github的要点也类似于pastebin,尽管存在版权限制。

考虑一个包含以下内容的python脚本file.py:

 
 
 
 
  1. #file.py 
  2. def foo(x): 
  3.  return x 

在Jupyter笔记本中使用 %pastebin会生成一个pastebin网址。

  • %matplotlib notebook

%matplotlib inline功能用于渲染Jupyter笔记本中的静态matplotlib图。尝试用notebook替换inline,以轻松获得可变焦、可调整大小的绘图。请确保在导入matplotlib库之前启用该功能。

%matplotlib inline 与 %matplotlib notebook

  • %run

%run 功能在笔记本内部运行python脚本。

 
 
 
 
  1. %run file.py 
  • %%writefile

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

  • %%latex

%%latex 功能将单元格内容呈现为 LaTeX格式。这对于在单元格中编写数学公式和方程很有用。

4. 查找并消除错误

Interactive debugger也是一个有魔力的功能,但本文对它进行单独分类。如果在运行代码单元时出现异常,用户可以在新的一行中键入 %debug 并恢复运行。这一操作将打开一个交互式调试环境,找到发生异常的位置。用户还可以检查程序中分配的变量值,并在此执行操作。点击q即可退出调试。

5. 美观排版

如果想建立美观的数据结构,pprint是一个直接的模块,在打印字典或JSON数据时特别有用。下面来看一个使用print 和 pprint 来显示输出的例子。

6. 笔记突出显示

可以在Jupyter笔记本中使用alert/Note boxes来标记一些重要的或需要突出的内容。笔记的颜色取决于突出内容的重要程度。用户只需在需要突出显示的单元格中添加以下任意或所有代码。

  • 蓝色笔记框:信息
 
 
 
 
  1.  
  2. Tip: Use blue boxes (alert-info) for tips and notes.  
  3. If it’s a note, you don’t have to include the word “Note”. 
 

 

Example: Yellow Boxes are generally used to include additional examples or mathematical formulas.

 
 
 
 
  1.  
  2. Use green box only when necessary like to display links to related content. 
 

 

 
 
 
 
  1.  
  2. It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc.  
 

 

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

例如包含以下代码行的Jupyter笔记本单元格:

 
 
 
 
  1. In [1]: 10+5  
  2.  11+6 
  3. Out [1]: 17 

只打印最后一个输出是单元格的正常属性,而其他输出,则需要添加 print()功能。事实证明,只要在笔记本顶部添加以下代码段,就可以打印所有的输出内容。

 
 
 
 
  1. from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" 

现在所有输出可以一个接一个地打印出来。

 
 
 
 
  1. In [1]: 10+5  
  2.  11+6 
  3.  12+7 
  4. Out [1]: 15 
  5. Out [1]: 17 
  6. Out [1]: 19 

输入以下代码可恢复到初始设置:

 
 
 
 
  1. InteractiveShell.ast_node_interactivity = "last_expr" 

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

从命令行运行python脚本的一种典型方式是:python hello.py。但是,如果在运行相同脚本时添加一个额外的-i,例如python -i hello.py,则会带来更多优势。具体操作如下:

 
 
 
 
  1. import pdb 
  2. pdb.pm() 

该方式可帮助用户找到异常发生的位置,然后可以处理代码。

漏洞的原始来源

9. 自动注释代码

Ctrl/Cmd + / 可以自动注释掉单元格中选定的行。再次点击该组合键可以取消同一行代码的注释。

10. 撤销删除操作

你曾经有不小心删除过笔记本中的单元格吗?如果有,那么这里有一个快捷键可以撤销删除操作。

本文题目:加速数据分析,这10个小技巧好用到哭
浏览地址:http://www.mswzjz.com/qtweb/news20/161020.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

猜你还喜欢下面的内容

网站策划知识

各行业网站