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

天大地大妈咪最大 提交于 2021-02-18 22:31:10

点击上方“早起python”,关注早起

和我一起,成为更好的自己

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


01

使用Pandas  Profiling预览数据


这个神器我们在 之前的文章 中就详细讲过,使用Pandas  Profiling可以在进行数据分析之前对数据进行快速预览,拿我们使用过很多次的NBA数据集来说,导入数据集之后
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()绘图,我们来看看

df.plot()


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

df.iplot()

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

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


03

使用notebook的Magic命令


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

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

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

%store 变量 #保存变量
%store -r 变量 #在另一个notebook中调用变量

%who:列出全部变量

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

%debug:交互式调试

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

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

04

使用jupyter快捷键


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

常用的比如

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

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)



往期内容 (👇 猛戳可查看


热门文章:
情人节用python写个网站对ta表白吧!
用python制作动态图表看全球疫情变化趋势
爬取网易云音乐1万条评论,感受疫情下的真情
钉钉在线求饶?五星分期付款?爬取钉钉App Store真实评价数据并分析

数据分析:
疫情数据哪里找,看这篇就够了
Python一行命令生成数据分析报告
更高级的数据可视化,用pyecharts制作精美图表
python数据分析万字干货!全方位解读pandas


记得点个 在看 支持下~👇

本文分享自微信公众号 - TechFlow(techflow2019)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!