前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速提高Python数据分析速度的八个技巧

快速提高Python数据分析速度的八个技巧

作者头像
刘早起
发布2020-04-22 15:57:24
9790
发布2020-04-22 15:57:24
举报
文章被收录于专栏:早起Python早起Python

今天整理了几个在使用python进行数据分析的常用小技巧、命令。记得搭配Pandas+Jupyter Notebook使用哦。

01

使用Pandas Profiling预览数据

这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行快速预览,拿我们使用过很多次的NBA数据集来说,导入数据集之后

代码语言:javascript
复制
import pandas as pd
import pandas_profiling
nba = pd.read_csv('nba_all_elo.csv') #导入数据

nba.profile_report()

一行代码就生成丰富的交互式数据EDA报告

可以看到,除了之前我们需要的一些描述性统计数据,该报告还包含以下信息:

  • 类型推断:检测数据帧中列的数据类型。
  • 要点:类型,唯一值,缺失值
  • 分位数统计信息,例如最小值,Q1,中位数,Q3,最大值,范围,四分位数范围
  • 描述性统计数据,例如均值,众数,标准偏差,总和,中位数绝对偏差,变异系数,峰度,偏度
  • 最常使用的值
  • 直方图
  • 相关性矩阵
  • 缺失值矩阵,计数,热图和缺失值树状图
  • 文本分析:了解文本数据的类别(大写,空格),脚本(拉丁,西里尔字母)和块(ASCII)

02

使用cufflinks绘制图表

上一个神器Pandas Profiling可以快速帮助我们预览数据,那么这个神器cufflinks可以帮我们直接使用DataFrame快速绘制交互式图表。就像seaborn封装了matplotlib一样,cufflinks在plotly的基础上做了一进一步的包装,方法统一,参数配置简单。

对pandas熟悉的同学可能知道pandas可以直接调用.plot()绘图,我们来看看

代码语言:javascript
复制
df.plot()

如果使用cufflinks来绘制,也是一行代码

代码语言:javascript
复制
df.iplot()

是不是交互式的图表更得人心?当然还可以直接使用DataFrame绘制其他复杂的图表

如果在数据分析工作中经常需要数据可视化的话就考虑使用cufflinks吧!

03

使用notebook的Magic命令

Magic命令是Jupyter notebook中的一组便捷功能,数熟练使用该命令可以解决数据分析中的一些常见问题。使用%lsmagic就可以查看所有的Magic命令,下面我们介绍几个常用的

%store:在不同notebook间传递变量

不知道大家有没有经历过在一个notebook中进行数据预处理数据清洗等相关工作,在另一个notebook中进行可视化相关工作,那么怎样在绘图时直接调用另一个notebook中的数据呢?使用%store就可以轻松解决

代码语言:javascript
复制
%store 变量 #保存变量
%store -r 变量 #在另一个notebook中调用变量

%who:列出全部变量

在大型数据分析过程中,你是否遇到过忘记定义了哪些变量或者忘记某个变量是否赋值还是忘记了变量名甚至删除了赋值语句。没关系使用%who命令可以列出这个notebook中的全部变量

%debug:交互式调试

有时候我们写了一大段代码执行发现报错,这时调试是比较痛苦的,那么我们可以在新的一行中键入%debug并运行。这将打开一个交互式调试环境,它能直接定位到发生异常的位置。还可以检查程序中分配的变量值,并在此处执行操作

notebook的magic命令还有很多就不一一介绍,如果感兴趣可以自己查询使用或者关注公众号『早起python』后续文章。

04

使用jupyter快捷键

Jupyter作为生成嵌入式代码的优秀编辑器自带了很多快捷键,熟练使用快捷键将会省去很多繁琐的鼠标点击操作,可以使用Cmd + Shift + P或Ctrl + Shift + P在Linux和Windows上查看有哪些快捷键。

常用的比如

代码语言:javascript
复制
Tab : 代码补全或缩进
Shift-Tab : 提示
Ctrl-] : 缩进
Ctrl-[ : 解除缩进
Ctrl-Home : 跳到单元开头
Ctrl-Up : 跳到单元开头
Ctrl-End : 跳到单元末尾
Ctrl-Down : 跳到单元末尾
Ctrl-Left : 跳到左边一个字首
Ctrl-Right : 跳到右边一个字首

05

使用pprint

pprint 是pretty printer 的缩写,用来打印 Python 数据结构,与 print 相比,它打印出来的结构更加整齐,便于阅读。

先来看看print

再来看看pprint,是不是打印出来更加方便阅读

06

掌握多种处理异常值方法

在使用python进行数据分析时,如果数据集中出现缺失值、空值、异常值,那么数据清洗就是尤为重要的一步。因此掌握多种使用python处理异常值处理的方法,并在开始数据分析之前对异常值进行预处理会大大提升数据分析效率。

例如,将丢失的数据替换为'*'。我们可以使用.fillna('*') 将所有缺失值替换为*,或者data.fillna(axis=1,method='ffill')来横向/纵向用缺失值前面的值替换缺失值,那么更多的异常值处理方法可以参阅python数据分析之清洗数据:缺失值处理

07

使用-i执行python脚本

我们都知道在命令行执行python脚本可以使用python filename.py,而我推荐使用python -i filename.py去执行python脚本,因为这样在脚本执行完毕之后,python不会退出编译器。从而我们可以检查变量的值或继续进行操作。

而如果我们的代码发生了报错的话,该命令会直接定位到代码发生异常的位置,然后我们可以更方便的去处理代码,我们来看看

08

分批读取数据

有时当我们使用pandas读取的数据文件非常大的时候,如果直接一次性读取全部数据会出现内存不够用的情况,所以这时我们应该对该数据进行分批次读取,并处理每一批次然后保存每一批次的结果,最后对全部批次结果进行汇总。

代码语言:javascript
复制
import pandas as pd
data = pd.read_csv("data.csv",chunksize=10000) #chunksize是每一批次处理的数量
result = [] #用于储存结果
for chunk in data:
    #写一个函数处理每一个批次
    filter_result = chunk_manipulate(chunk)
    result.append(filter_result)
#合并所有批次
df = pd.concat(result)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • %store:在不同notebook间传递变量
  • %who:列出全部变量
  • %debug:交互式调试
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档