关于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之有容乃大的list(2)
Sep 15 Python
python 实时遍历日志文件
Apr 12 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
简单了解python模块概念
Jan 11 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
python实现转圈打印矩阵
Mar 02 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
如何在Windows中安装多个python解释器
Jun 16 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 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
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
PHP调用Webservice实例代码
2011/07/29 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python中super关键字用法实例分析
2015/05/28 Python
python 换位密码算法的实例详解
2017/07/19 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
Windows下python3.7安装教程
2018/07/31 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
python矩阵的转置和逆转实例
2018/12/12 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
详解Python中的Lock和Rlock
2021/01/26 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
外贸专业求职信
2014/03/09 职场文书
图书室标语
2014/06/21 职场文书
单位租房协议书样本
2014/10/30 职场文书
《风筝》教学反思
2016/02/23 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python