使用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抽象类的新写法
Jun 18 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
Python+tkinter实现高清图片保存
Mar 13 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
高亮度显示php源代码
2006/10/09 PHP
php Smarty 字符比较代码
2011/02/27 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
微信小程序之选项卡的实现方法
2017/09/29 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
python同时遍历数组的索引和值的实例
2018/11/15 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
python实现词法分析器
2019/01/31 Python
python中的数据结构比较
2019/05/13 Python
python通过http下载文件的方法详解
2019/07/26 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
工商管理本科毕业生求职信范文
2013/10/05 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
三八妇女节慰问信
2015/02/14 职场文书
mysql部分操作
2021/04/05 MySQL
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript