使用pandas实现连续数据的离散化处理方式(分箱操作)


Posted in Python onNovember 22, 2019

Python实现连续数据的离散化处理主要基于两个函数,pandas.cut和pandas.qcut,前者根据指定分界点对连续数据进行分箱处理,后者则可以根据指定箱子的数量对连续数据进行等宽分箱处理,所谓等宽指的是每个箱子中的数据量是相同的。

下面简单介绍一下这两个函数的用法:

# 导入pandas包
import pandas as pd
ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32] # 待分箱数据
bins = [18, 25, 35, 60, 100] # 指定箱子的分界点

pandas.cut函数 :

cats1 = pd.cut(ages, bins)
cats1

cats1结果:

[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60],
(35, 60], (25, 35]]
Length: 12
Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]
# labels参数为False时,返回结果中用不同的整数作为箱子的指示符
cats2 = pd.cut(ages, bins,labels=False) 
cats2 # 输出结果中的数字对应着不同的箱子

cats2结果:

array([0, 0, 0, 1, 0, 0, 2, 1, 3, 2, 2, 1], dtype=int64)
pd.value_counts(cats1) # 对不同箱子中的数进行计数

计数结果:

(18, 25]  5
(35, 60]  3
(25, 35]  3
(60, 100] 1
dtype: int64
pd.cut(ages, [18, 26, 36, 61, 100], right=False) # 指定分箱区间是左闭右开

改变区间开闭结果:

[[18, 26), [18, 26), [18, 26), [26, 36), [18, 26), ..., [26, 36), [61, 100), [36, 61),
[36, 61), [26, 36)]
Length: 12
Categories (4, interval[int64]): [[18, 26) < [26, 36) < [36, 61) < [61, 100)]
# 可以将想要指定给不同箱子的标签传递给labels参数
group_names = ['Youth', 'YoungAdult', 'MiddleAged', 'Senior']
cuts3 = pd.cut(ages, bins, labels=group_names) 
cuts3

cats3结果:

[Youth, Youth, Youth, YoungAdult, Youth, ..., YoungAdult, Senior, MiddleAged,
MiddleAged, YoungAdult]
Length: 12
Categories (4, object): [Youth < YoungAdult < MiddleAged < Senior]

pandas.qcut函数:

qcats1 = pd.qcut(ages,q=4) # 参数q指定所分箱子的数量
qcats1

qcats1结果:

[(19.999, 22.75], (19.999, 22.75], (22.75, 29.0], (22.75, 29.0], (19.999, 22.75], ...,
(29.0, 38.0], (38.0, 61.0], (38.0, 61.0], (38.0, 61.0], (29.0, 38.0]]
Length: 12
Categories (4, interval[float64]): [(19.999, 22.75] < (22.75, 29.0] < (29.0, 38.0] <
(38.0, 61.0]]
qcats1.value_counts() # 从输出结果可以看到每个箱子中的数据量时相同的

计数结果:

(19.999, 22.75] 3
(22.75, 29.0]  3
(29.0, 38.0]  3
(38.0, 61.0]  3
dtype: int64

​​​参考:《利用Python进行数据分析》——Wes McKinney 第二版

以上这篇使用pandas实现连续数据的离散化处理方式(分箱操作)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中os和shutil模块实用方法集锦
May 13 Python
python返回昨天日期的方法
May 13 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 Python
回调函数的意义以及python实现实例
Jun 20 Python
Random 在 Python 中的使用方法
Aug 09 Python
python实现公司年会抽奖程序
Jan 22 Python
Python中Numpy mat的使用详解
May 24 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 Python
在OpenCV里使用Camshift算法的实现
Nov 22 #Python
利用Python的sympy包求解一元三次方程示例
Nov 22 #Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 #Python
python快速排序的实现及运行时间比较
Nov 22 #Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 #Python
Python Celery多队列配置代码实例
Nov 22 #Python
python 协程 gevent原理与用法分析
Nov 22 #Python
You might like
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
代码生成器 document.write()
2007/04/15 Javascript
基于JQuery的密码强度验证代码
2010/03/01 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
python实现图片变亮或者变暗的方法
2015/06/01 Python
深入浅析python定时杀进程
2016/06/06 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Python加速程序运行的方法
2020/07/29 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
农业资源与环境专业自荐信范文
2013/12/30 职场文书
一年级学生期末评语
2014/04/21 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
民间借贷借条如何写
2015/05/26 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js