详解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 Django批量导入数据
Mar 25 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python3 webp转gif格式的实现示例
Dec 10 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python学习之os模块及用法
Jun 03 Python
python中uuid模块实例浅析
Dec 29 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
python实现自动化群控的步骤
Apr 11 Python
Python first-order-model实现让照片动起来
Jun 25 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
快速配置PHPMyAdmin方法
2008/06/05 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
python文件操作整理汇总
2014/10/21 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
Python实现的knn算法示例
2018/06/14 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
Python使用folium excel绘制point
2019/01/03 Python
Python2与Python3的区别实例分析
2019/04/11 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
科室工作的个人自我评价
2013/10/30 职场文书
高一英语教学反思
2014/01/22 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
Python实现聚类K-means算法详解
2022/07/15 Python