使用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查看多台服务器进程的脚本分享
Jun 11 Python
用python + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
Django实现图片文字同时提交的方法
May 26 Python
Python反射用法实例简析
Dec 22 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Python3.5文件读与写操作经典实例详解
May 01 Python
django2笔记之路由path语法的实现
Jul 17 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
Django接收照片储存文件的实例代码
Mar 07 Python
教你怎么用python selenium实现自动化测试
May 27 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Numpy中的mask的使用
2018/07/21 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python模块 _winreg操作注册表
2020/02/05 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
项目资料员岗位职责
2013/12/10 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
《尊严》教学反思
2014/02/11 职场文书
论文指导教师评语
2014/04/28 职场文书
教师业务学习材料
2014/12/16 职场文书
现货白银电话营销话术
2015/05/29 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏