关于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的函数嵌套的使用方法
Jan 24 Python
python中list常用操作实例详解
Jun 03 Python
Python处理XML格式数据的方法详解
Mar 21 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
Django中Model的使用方法教程
Mar 07 Python
在双python下设置python3为默认的方法
Oct 31 Python
python实现逐个读取txt字符并修改
Dec 24 Python
linux查找当前python解释器的位置方法
Feb 20 Python
python批量修改ssh密码的实现
Aug 08 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 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 gd等比例缩放压缩图片函数
2016/06/12 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python的迭代器和生成器使用实例
2015/01/14 Python
python sorted方法和列表使用解析
2019/11/18 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
自动化系在校本科生求职信
2013/10/23 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
民主生活会剖析材料
2014/09/30 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
2016国培研修心得体会
2016/01/08 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL