使用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实现的方法示例
Jul 12 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python实现蒙特卡罗方法教程
Jan 28 Python
Python理解递归的方法总结
Jan 28 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
python数据归一化及三种方法详解
Aug 06 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
python中的None与NULL用法说明
May 25 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
用客户端js实现带省略号的分页
2013/04/27 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
python 元组和列表的区别
2020/12/30 Python
python的setattr函数实例用法
2020/12/16 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
土木工程师岗位职责
2013/11/24 职场文书
体育教师自我鉴定
2014/02/12 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
2015员工年度考核评语
2015/03/25 职场文书