关于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解析中国天气网的天气数据
Mar 21 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
Python格式化日期时间操作示例
Jun 28 Python
python异步存储数据详解
Mar 19 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
基于Python中的yield表达式介绍
Nov 19 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 Python
python判断元素是否存在的实例方法
Sep 24 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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实现留言板功能(代码详解)
2017/03/28 PHP
laravel入门知识点整理
2020/09/15 PHP
javascript调试说明
2010/06/07 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
理解javascript正则表达式
2016/03/08 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
初探nodeJS
2017/01/24 NodeJs
node操作mysql数据库实例详解
2017/03/17 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
Saltstack快速入门简单汇总
2016/03/01 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
岗位说明书范文
2014/05/07 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
初二英语教学反思
2016/02/15 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers