今天整理了几个在使用python进行数据分析的常用小技巧、命令。
提高Python数据分析速度的八个小技巧
01
使用Pandas Profiling预览数据
这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行快速预览,拿我们使用过很多次的NBA数据集来说,导入数据集之后
一行代码就生成丰富的交互式数据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 + P或Ctrl + 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读取的数据文件非常大的时候,如果直接一次性读取全部数据会出现内存不够用的情况,所以这时我们应该对该数据进行分批次读取,并处理每一批次然后保存每一批次的结果,最后对全部批次结果进行汇总。
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
今天整理了几个在使用python进行数据分析的常用小技巧、命令。的更多相关文章
- Python爬虫简单入门及小技巧
刚刚申请博客,内心激动万分.于是为了扩充一下分类,随便一个随笔,也为了怕忘记新学的东西由于博主十分怠惰,所以本文并不包含安装python(以及各种模块)和python语法. 目标 前几天上B站时看到一 ...
- 10个Python 初学者必知编码小技巧
技巧 #1 字符串翻转 >>> a = "codementor" >>> print "Reverse is" ...
- python和django的一些小技巧(locals()...)
locals() 技巧: 思考一下我们对 current_datetime 的最后一次赋值: >>> import datetime >>> def current ...
- 教你一招,提升你Python代码的可读性,小技巧
Python的初学者,开发者都应该知道的代码可读性提高技巧,本篇主要介绍了如下内容: PEP 8是什么以及它存在的原因 为什么你应该编写符合PEP 8标准的代码 如何编写符合PEP 8的代码 为什么我 ...
- Python爬虫常用小技巧之设置代理IP
设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...
- 让你的python代码优雅地道的小技巧
转载地址:http://www.lightxue.com/transforming-code-into-beautiful-idiomatic-python 用了python这么久,逐渐才了解到pyt ...
- python 程序双击执行的小技巧
文章更新于:2020-04-03 按照惯例,需要的文件附上链接放在文首. 文件名:ICOFX图标制作软件.7z 文件大小:40.2 MB 下载链接:https://www.lanzous.com/ia ...
- 10 个 Python 初学者必知编码小技巧
技巧 #1 字符串翻转 a = "codementor">>> print "Reverse is",a[::-1]翻转后的结果为 rotne ...
- 一小部分用python进行MD5加密的小技巧
上个图 要求计算出开头为ae3da且盐值为3c6e的字符串 简单的思路就是直接进行枚举,然后筛选符合条件的MD5加密字符,代码如下 #-*- coding:utf- -*- import hashli ...
随机推荐
- MySQL----DDL(操作数据库,表)
1. 操作数据库:CRUD 1. C(Create):创建 * 创建数据库: * create database 数据库名称; * 创建数据库,判断不存在,再创建: * create database ...
- leetcode之820. 单词的压缩编码 | python极简实现字典树
题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", "bell& ...
- python中的抽象类
今天给大家介绍一下python中一个强大的功能:抽象类 因为最近发现很多同事不理解抽象类,正好抽空写篇博客,给大家介绍一下抽象类 抽象类的作用就是控制子类的方法的名称,要求子类必须按照父类的要求的实现 ...
- 福利,OpenCV最新中文版官方教程来了
OpenCV 中文版官方教程来了. OpenCV是计算机视觉中经典的专用库,然而其中文版官方教程久久不来.近日,一款最新OpenCV4.1 版本的完整中文版官方教程出炉,读者朋友可以更好的学习了解Op ...
- 关于getchar的疑惑
最近做了一道题,我的代码有片段是这样的 while(scanf("%d",&n)) { if(n==0&&getchar()=='\n') break; . ...
- python之常用模块ymal
在学习python如何操作yml文件之前,我们先科普一下yml的格式 yaml是专门写配置文件的语言,非常简洁和强大,比json更加方便 YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便 ...
- [codevs2597]团伙<并查集>
题目描述 Description 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友 ...
- KA 接口表
一.建表 1.年日均销量表 drop table app.app_basic_dashboard_goods_avg_year_sellnum; CREATE TABLE app.app_basic_ ...
- FarmCraft --(树形DP)
题目描述 In a village called Byteville, there are houses connected with N-1 roads. For each pair of hous ...
- 1064 Complete Binary Search Tree (30分)(已知中序输出层序遍历)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...