使用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二分法实现实例
Nov 21 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
python 制作磁力搜索工具
Mar 04 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP基本语法总结
2014/09/06 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
python中input()与raw_input()的区别分析
2016/02/27 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
Python 忽略文件名编码的方法
2020/08/01 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
旷课检讨书3000字
2014/02/04 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS