作者:俊欣

来源:关于数据分析与可视化

前言

大家好,这里是俊欣,今天和大家来分享几个Pandas方法可以有效地帮助我们在数据分析与数据清洗过程当中提高效率,加快工作的进程,希望大家看了之后会有收获。

首先导入模块和读取数据,这回用到的数据集中有各种各样类型的数据,链接为:https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data

import pandas as pd
df = pd.read_csv("AB_NYC_2019.csv")
df.head()

01

pandas.factorize()

针对离散型的数据,我们通常用“sklearn”模块中的“LabelEncoder”方法来对其进行打标签,而在“pandas”模块中也有相对应的方法来对处理,“factorize”函数可以将离散型的数据映射为一组数字相同的离散型数据映射为相同的数字,例如我们针对数据集当中的“room_type”这一列来进行处理

pd.factorize(df['room_type'])

结果返回的是元组形式的数据,由两部分组成,其中的第一部分是根据离散值映射完成后的数字,另一部分则是具体的离散值数据

02

pandas.get_dummies()

在上面的例子当中,我们对离散值进行了编码,编码的结果有大小的意义,例如针对尺码的离散值:【X,XL,XXL】我们映射出来的结果是{X: 1,XL: 2,XXL: 3},但是有时候离散值取值之间没有大小的意义,例如颜色:【红色、蓝色、黄色】等,而这个时候用上述的方法就不太合适了,我们会使用独热编码的方式来对离散值进行编码。

所谓独热编码,就是将离散型特征的每一种取值都看成一种状态,若某一个特征当中有N个不相同的取值,则我们就可以将该特征抽象成N中不同的状态。而在“Pandas”模块当中有相应的方法来实现上面的功能:

pd.get_dummies(df['room_type'])
## 参数prefix: 给输出的列添加前缀
##     drop_first: 将第一列的给去掉

我们将它与源数据进行合并的话

df.join(pd.get_dummies(df['room_type']))

03

pandas.qcut()

有时候我们需要对数据集中的某一列进行分箱处理,也就是把一段连续的数据切分成若干段,每一段的值看成一个分类。例如我们把学生年龄按15岁划分成一组,0-15岁的叫做少年,16-39岁的叫做青年,而31-45岁的叫做壮年。在这个过程当中我们把连续的年龄分成三个类别,“少年”、“青年”、和“壮年”就是各个类别的名称或者叫做是标签。在“Pandas”模块当中也有相对应的方法来实现分箱操作。

pd.qcut(df['price'],4) # 第二个参数确定的是要分成几段

当然出来的结果是Interval类型的数据,例如

pd.qcut(df['price'],4)[0]
-------------------------------------
## output
## Interval(106.0, 175.0, closed='right')

我们可以将其变成字符串的格式

pd.qcut(df['price'],4)[0]
-------------------------------------
## output
## Interval(106.0, 175.0, closed='right')

04

pandas.drop_duplicates()

数据集当中存在的重复值可能会对机器学习以及深度学习的模型造成不好的影响,当遇到这样的情况的时候,我们使用“pandas”模块当中的“drop_duplicates”的方法来去除重复值,我们先人为的制造一些重复值出来,

df.loc[1] = df.loc[0]
df.loc[2] = df.loc[0]
df.loc[3] = df.loc[0]
df.head()

df.drop_duplicates(inplace=True) # 前面几行的重复值被去除掉了
df.head()

05

pandas.clip()

由于极值的存在,经常会对模型的训练结果产生较大的影响,而在“pandas”模块中有针对极值的处理方法,“clip”方法中对具体的连续型的数据设定范围,要是遇到超过所规定范围的值,则会对其进行替换,替换成所设定范围中的上限与下限,例如下面的例子,我们针对数据集当中的“price”这一列进行极值的处理

df['price'] = df['price'].clip(100,140)
df.head(8)

超过140的值被替换成了140了,没到100的值被100给代替了

更多精彩推荐
大手笔 !Julia Computing 获 2400 万美元融资,前 Snowflake CEO 加入董事会芯片开发语言:Verilog 在左,Chisel 在右深度学习实现场景字符识别模型|代码干货

收藏 | 提高数据处理效率的 Pandas 函数方法相关推荐

  1. 嵌入式编程C语言提高代码效率的14种方法

    嵌入式编程C语言提高代码效率的14种方法 1.在可能的情况下使用typedef替代define.当然有时候你无法避免define,但是typedef更好. typedef int* INT_PTR; ...

  2. Pandas 函数方法汇总一览查询(持续补充改进)

    Pandas 函数方法汇总一览查询(持续补充改进) 文章目录 Pandas 函数方法汇总一览查询(持续补充改进) 初衷 Pandas 最最常用函数罗列 Pandas 函数用法示例 初衷 NumPy.P ...

  3. EDA - verdi提高dump效率的几种方法Conventional Issues Verdi’s Approach

    verdi提高dump效率的几种方法Conventional Issues & Verdi's Approach Issues and Conventional Approach • Toda ...

  4. 【Python】推荐20个好用到爆的Pandas函数方法

    今天分享几个不为人知的pandas函数,大家可能平时看到的不多,但是使用起来倒是非常的方便,也能够帮助我们数据分析人员大幅度地提高工作效率,同时也希望大家看完之后能够有所收获 items()方法 it ...

  5. 【Python】分享14条非常实用的Pandas函数方法,建议珍藏!!

    今天和大家来分享几个十分好用的pandas函数,可能平时并不是特别的常见,但是却能够帮助我们在平时的工作.学习当中极大的提高效率,小编也希望读者朋友们在看完本文之后能够大有收获 1 ExcelWrit ...

  6. 异构计算-1-10x10:一种异质性和提高能量效率的通用架构方法

    摘要 20年来,微处理器的性能有了1000倍的提高.最近,由于晶体管的速度和能耗的限制,整个半导体工业,逐渐通过多核并行来提高性能.广泛研究表明,未来需要更好的方法,如-超并行机制,接近门限电平调节技 ...

  7. Pandas函数方法分类 参数说明+实例分析!!

    Pandas描述性统计(函数用法说明) 函数索引(同样可以对 行列 进行操作) count() 非空数据的数量 sum() 所有值之和 mean() 所有值的平均值 median() 所有值的中位数 ...

  8. 提高工作效率的三个方法

    今天有周会,按计划是2点的,1点30跟要参加周会的项目经理说,提前一点到会议室,我要提前跟他们谈下工作.可是,万万没有想到的是,到了跟他们连线,时间还是稳稳地站到2点整.所以呀,提高工作效率并不是只对 ...

  9. 提高工作效率的时间管理方法

    提高工作效率的关键,在于专心致志地去做最有价值的工作,一次只做一件事情,并不断实践,将其养成工作习惯.这样,工作效率就会成倍地增加,进而获得更多的可自由支配的时间,有效地进行时间管理. 下面是一些具体 ...

最新文章

  1. python自定义库文件路径
  2. 可以让你玩儿光剑的程序,vc实现方法和代码
  3. 基于Nginx的负载均衡
  4. IE8提示JS错误(KB927917)终极解决方法
  5. 单目视觉里程计 mono vo
  6. Git 历史记录内容对比
  7. python的8种标准数据类型有哪些_Python的八种数据类型
  8. php 父类命名空间,对命名空间的理解、类的继承与实现——2019年7月31号22时03分...
  9. zabbix邮件发送3.2.4
  10. Jade报错:Invalid indentation,you can use tabs or spaces but not both问题
  11. WinServer2003秘笈放送
  12. 一起话单业务量下降问题的排查过程
  13. Windows10配置使用极点五笔输入法
  14. 空气中弥漫着『病毒』的味道
  15. 电脑网线连接无线路由扩展设置
  16. Crate 数据库安装与使用
  17. 杂谈:电商平台中的图片资源优化实战
  18. 使用Photoshop变化一张图片的颜色深浅
  19. 《深入理解计算机系统》读书笔记
  20. Unity减少安装包的大小总结

热门文章

  1. linux下字符串处理工具二:awk(1)
  2. webpack-dev-server 和webapck --watch的区别
  3. ffmpeg 基本用法大全
  4. Android程序完全退出的三种方法
  5. server 2003登录界面黑屏的解决办法
  6. javascript this用法小结
  7. Java2021中级面试题
  8. 常用的分布式事务解决方案介绍有多少种?
  9. English Spoken Math
  10. Pytorch中的广播机制