关于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的加密模块md5、sha、crypt使用实例
Sep 28 Python
Python NumPy库安装使用笔记
May 18 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Python小进度条显示代码
Mar 05 Python
django2笔记之路由path语法的实现
Jul 17 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
python名片管理系统开发
Jun 18 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
解决Pymongo insert时会自动添加_id的问题
Dec 05 Python
python实现简单的名片管理系统
Apr 26 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
关于递归运算的顺序测试代码
2011/11/30 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
对于Python装饰器使用的一些建议
2015/06/03 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
新浪网技术部笔试题
2016/08/26 面试题
优秀毕业生自荐信范文
2014/01/01 职场文书
小学生秋游活动方案
2014/02/23 职场文书
2015年父亲节寄语
2015/03/23 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA