详解10个可以快速用Python进行数据分析的小技巧


Posted in Python onJune 24, 2019

一些小提示和小技巧可能是非常有用的,特别是在编程领域。有时候使用一点点黑客技术,既可以节省时间,还可能挽救“生命”。

一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正的生产力助推器。所以,这里有一些小提示和小技巧,有些可能是新的,但我相信在下一个数据分析项目中会让你非常方便。

Pandas中数据框数据的Profiling过程

Profiling(分析器)是一个帮助我们理解数据的过程,而Pandas Profiling是一个Python包,它可以简单快速地对Pandas 的数据框数据进行探索性数据分析。

Pandas中df.describe()和df.info()函数可以实现EDA过程第一步。但是,它们只提供了对数据非常基本的概述,对于大型数据集没有太大帮助。 而Pandas中的Profiling功能简单通过一行代码就能显示大量信息,且在交互式HTML报告中也是如此。

对于给定的数据集,Pandas中的profiling包计算了以下统计信息:

详解10个可以快速用Python进行数据分析的小技巧

由Pandas Profiling包计算出的统计信息包括直方图、众数、相关系数、分位数、描述统计量、其他信息——类型、单一变量值、缺失值等。

1. 安装

用pip安装或者用conda安装

pip install pandas-profiling 
 conda install -c anaconda pandas-profiling

2. 用法

下面代码是用很久以前的泰坦尼克数据集来演示多功能Python分析器的结果。

#importing the necessary packages 
 import pandas as pd 
 import pandas_profiling 
df = pd.read_csv('titanic/train.csv') 
 pandas_profiling.ProfileReport(df)

一行代码就能实现在Jupyter Notebook中显示完整的数据分析报告,该报告非常详细,且包含了必要的图表信息。

详解10个可以快速用Python进行数据分析的小技巧

还可以使用以下代码将报告导出到交互式HTML文件中。

profile = pandas_profiling.ProfileReport(df) 
profile.to_file(outputfile="Titanic data profiling.html")

详解10个可以快速用Python进行数据分析的小技巧

Pandas实现交互式作图

Pandas有一个内置的.plot()函数作为DataFrame类的一部分。但是,使用此功能呈现的可视化不是交互式的,这使得它没那么吸引人。同样,使用pandas.DataFrame.plot()函数绘制图表也不能实现交互。 如果我们需要在不对代码进行重大修改的情况下用Pandas绘制交互式图表怎么办呢?这个时候就可以用Cufflinks库来实现。

Cufflinks库可以将有强大功能的plotly和拥有灵活性的pandas结合在一起,非常便于绘图。下面就来看在pandas中如何安装和使用Cufflinks库。

1. 安装

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

2. 用法

#importing Pandas 
 import pandas as pd 
 #importing plotly and cufflinks in offline mode 
 import cufflinks as cf 
import plotly.offline 
 cf.go_offline() 
 cf.set_config_file(offline=False, world_readable=True)

是时候展示泰坦尼克号数据集的魔力了。

df.iplot()

详解10个可以快速用Python进行数据分析的小技巧

详解10个可以快速用Python进行数据分析的小技巧

df.iplot() vs df.plot()

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

Magic命令

Magic命令是Jupyter notebook中的一组便捷功能,旨在解决标准数据分析中的一些常见问题。使用命令%lsmagic可以看到所有的可用命令。

详解10个可以快速用Python进行数据分析的小技巧

所有可用的Magic命令列表

Magic命令有两种:行magic命令(line magics),以单个%字符为前缀,在单行输入操作;单元magic命令(cell magics),以双%%字符为前缀,可以在多行输入操作。如果设置为1,则不用键入%即可调用Magic函数。

接下来看一些在常见数据分析任务中可能用到的命令:

1. % pastebin

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

在file.py文件中写一个包含以下内容的python脚本,并试着运行看看结果。

#file.py 
 def foo(x): 
   return x

在Jupyter Notebook中使用%pastebin生成一个pastebin url。

详解10个可以快速用Python进行数据分析的小技巧

2. %matplotlib notebook

函数用于在Jupyter notebook中呈现静态matplotlib图。用notebook替换inline,可以轻松获得可缩放和可调整大小的绘图。但记得这个函数要在导入matplotlib库之前调用。

详解10个可以快速用Python进行数据分析的小技巧

3. %run

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

%run file.py 
%%writefile

%% writefile是将单元格内容写入文件中。以下代码将脚本写入名为foo.py的文件并保存在当前目录中。

详解10个可以快速用Python进行数据分析的小技巧

4. %%latex

%%latex函数将单元格内容以LaTeX形式呈现。此函数对于在单元格中编写数学公式和方程很有用。

详解10个可以快速用Python进行数据分析的小技巧

查找并解决错误

交互式调试器也是一个神奇的功能,我把它单独定义了一类。如果在运行代码单元时出现异常,请在新行中键入%debug并运行它。 这将打开一个交互式调试环境,它能直接定位到发生异常的位置。还可以检查程序中分配的变量值,并在此处执行操作。退出调试器单击q即可。

详解10个可以快速用Python进行数据分析的小技巧

Printing也有小技巧

如果您想生成美观的数据结构,pprint是首选。它在打印字典数据或JSON数据时特别有用。接下来看一个使用print和pprint来显示输出的示例。

详解10个可以快速用Python进行数据分析的小技巧

详解10个可以快速用Python进行数据分析的小技巧

让你的笔记脱颖而出

我们可以在您的Jupyter notebook中使用警示框/注释框来突出显示重要内容或其他需要突出的内容。注释的颜色取决于指定的警报类型。只需在需要突出显示的单元格中添加以下任一代码或所有代码即可。

1. 蓝色警示框:信息提示

<div class="alert alert-block alert-info"> 
 <b>Tip:</b> Use blue boxes (alert-info) for tips and notes. 
 If it's a note, you don't have to include the word “Note”. 
 </div>

详解10个可以快速用Python进行数据分析的小技巧

2. 黄色警示框:警告

<div class="alert alert-block alert-warning"> 
 <b>Example:</b> Yellow Boxes are generally used to include additional examples or mathematical formulas. 
 </div>

详解10个可以快速用Python进行数据分析的小技巧

3. 绿色警示框:成功

<div class="alert alert-block alert-success"> 
 Use green box only when necessary like to display links to related content. 
 </div>

详解10个可以快速用Python进行数据分析的小技巧

4. 红色警示框:高危

<div class="alert alert-block alert-danger"> 
It is good to avoid red boxes but can be used to alert users to not delete some important part of code etc. 
</div>

详解10个可以快速用Python进行数据分析的小技巧

打印单元格所有代码的输出结果

假如有一个Jupyter Notebook的单元格,其中包含以下代码行:

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

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

添加代码后所有的输出结果就会一个接一个地打印出来。

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

恢复原始设置:

InteractiveShell.ast_node_interactivity = "last_expr"

使用'i'选项运行python脚本

从命令行运行python脚本的典型方法是:python hello.py。但是,如果在运行相同的脚本时添加-i,例如python -i hello.py,就能提供更多优势。接下来看看结果如何。

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

详解10个可以快速用Python进行数据分析的小技巧

其次,我们可以轻松地调用python调试器,因为我们仍然在解释器中:

import pdb 
pdb.pm()

这能定位异常发生的位置,然后我们可以处理异常代码。

自动评论代码

Ctrl / Cmd + /自动注释单元格中的选定行,再次命中组合将取消注释相同的代码行。

详解10个可以快速用Python进行数据分析的小技巧

删除容易恢复难

你有没有意外删除过Jupyter notebook中的单元格?如果答案是肯定的,那么可以掌握这个撤消删除操作的快捷方式。

如果您删除了单元格的内容,可以通过按CTRL / CMD + Z轻松恢复它。

如果需要恢复整个已删除的单元格,请按ESC + Z或EDIT>撤消删除单元格。

详解10个可以快速用Python进行数据分析的小技巧

结论

在本文中,我列出了使用Python和Jupyter notebook时收集的一些小提示。我相信它们会对你有用,能让你有所收获,从而实现轻松编码!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接mysql并提交mysql事务示例
Mar 05 Python
Python入门篇之条件、循环
Oct 17 Python
python提取内容关键词的方法
Mar 16 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
python之Socket网络编程详解
Sep 29 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
HTML的form表单和django的form表单
Jul 25 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
python安装及变量名介绍详解
Dec 12 Python
python跳出双层for循环的解决方法
Jun 24 #Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 #Python
解决python执行不输出系统命令弹框的问题
Jun 24 #Python
python实现在cmd窗口显示彩色文字
Jun 24 #Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 #Python
python隐藏终端执行cmd命令的方法
Jun 24 #Python
用django-allauth实现第三方登录的示例代码
Jun 24 #Python
You might like
destoon实现调用热门关键字的方法
2014/07/15 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue实现计步器功能
2019/11/01 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python实现新浪博客备份的方法
2016/04/27 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
考试退步检讨书
2014/01/15 职场文书
毕业生自荐书
2014/02/02 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
Pytorch可视化的几种实现方法
2021/06/10 Python
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS