关于pandas的离散化,面元划分详解


Posted in Python onNovember 22, 2019

pd.cut

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)

x:要分箱的输入数组,必须是一维的

bins:int或标量序列

若bins是一个int,它定义在x范围内的等宽单元的数量。然而,在这种情况下,x的范围在每一侧延伸0.1%以包括x的最小值或最大值

若bins是一个序列,它定义了允许非均匀bin宽度的bin边缘。在这种情况下不进行x的范围的扩展

right:bool,可选:决定区间的开闭,如果right == True(默认),则区间[1,2,3,4]指示(1,2],(2,3],(3,4]

labels:array或boolean,默认值为无:用作生成的区间的标签。必须与生成的区间的长度相同。如果为False,则只返回bin的整数指示符

retbins:bool,可选:是否返回bin。如果bin作为标量给出,则可能有用

precision:int:存储和显示容器标签的精度,默认保留三位小数

include_lowest:bool:第一个间隔是否应该包含左边

import numpy as np
import pandas as pd
# 使用pandas的cut函数划分年龄组
ages = [20,22,25,27,21,23,37,31,61,45,32]
bins = [18,25,35,60,100]
cats = pd.cut(ages,bins)
print(cats) # 分类时,当数据不在区间中将变为nan
# 统计落在各个区间的值数量
print(pd.value_counts(cats))
# 使用codes为年龄数据进行标号
print(cats.codes)
# 设置自己想要的面元名称
group_names = ['Youth','YoungAdult','MiddleAged','Senior']
print(pd.cut(ages, bins, labels=group_names))
# 设置区间数学符号为左闭右开
print(pd.cut(ages, bins, right=False))
# 向cut传入面元的数量,则会根据数据的最小值和最大值计算等长面元
print(pd.cut(ages, 4, precision=2)) # precision=2表示设置的精度

pd.qcut

与cut类似,它可以根据样本分位数对数据进行面元划分

pandas.qcut(x, q, labels=None, retbins=False, precision=3)

x:ndarray或Series

q:整数或分位数阵列分位数。十分位数为10,四分位数为4或者,分位数阵列,例如[0,.25,.5,.75,1.]四分位数

labels:array或boolean,默认值为无:用作生成的区间的标签。必须与生成的区间的长度相同。如果为False,则只返回bin的整数指示符。

retbins:bool,可选:是否返回bin。如果bin作为标量给出,则可能有用。

precision:int:存储和显示容器标签的精度

import numpy as np
import pandas as pd

# qcut可以根据样本分位数对数据进行面元划分
# data = np.random.randn(20) # 正态分布
data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
cats = pd.qcut(data, 4) # 按四分位数进行切割
print(cats)
print(pd.value_counts(cats))
print("-------------------------------------------------")
# 通过指定分位数(0到1之间的数值,包含端点)进行面元划分
cats_2 = pd.qcut(data, [0, 0.5, 0.8, 0.9, 1])
print(cats_2)
print(pd.value_counts(cats_2))

以上这篇关于pandas的离散化,面元划分详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python数据结构之翻转链表
Feb 25 Python
Python中几种导入模块的方式总结
Apr 27 Python
答题辅助python代码实现
Jan 16 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
Python读取yaml文件的详细教程
Jul 21 Python
利用Python优雅的登录校园网
Oct 21 Python
python字符串常规操作大全
May 02 Python
Django与数据库交互的实现
Jun 03 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 #Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 #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
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
php获取随机数组列表的方法
2014/11/13 PHP
php实现的递归提成方案实例
2015/11/14 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
pandas去除重复列的实现方法
2019/01/29 Python
PyTorch基本数据类型(一)
2019/05/22 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
python热力图实现简单方法
2021/01/29 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
Ajax的工作原理
2015/12/04 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
应聘美工求职信
2013/11/07 职场文书
自我鉴定写作要点
2014/01/17 职场文书
环保建议书作文400字
2015/09/14 职场文书
个人工作决心书
2015/09/22 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫