pandas之cut
cut( )用来把一组数据分割成离散的区间。
cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise') # x:被切分的数据,必须是一维的 # bins:①int型整数:将x按照数值大小平均分成分成bins份,x的范围在最左侧和最右侧分别扩展0.1%以包括最大值和最小值#②标量序列:自定义分组的每个区间,此时严格按照给定的区间分割,x最左和最右不扩展#③pandas.IntervalIndex # right:布尔值,默认为True,表示分割后包含区间右侧值不包含左侧值,False表示分割后包含左侧值不包括右侧值 # labels:分组后bins的标签,默认为None显示分割后属于的区间 # retbins:返回结果中是否包括bins,一般bins参数使用整数时 # precision:保留的小数点位数,默认为3 # include_lowest:如果自定义标量序列分组,第一个区间是否包含左侧最小值 # duplicates:是否允许区间重复
bins设置为整数,将一维数组平均分为5份
arr = np.array([1,77,10,89,36,12,58,62,5,40,32,18,20,25,30,100]) c = pd.cut(arr,5,precision=1) print(c) # [(0.9, 20.8], (60.4, 80.2], (0.9, 20.8], (80.2, 100.0], (20.8, 40.6], ..., (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], (80.2, 100.0]] # Length: 16 # Categories (5, interval[float64]): [(0.9, 20.8] < (20.8, 40.6] < (40.6, 60.4] < (60.4, 80.2] < (80.2, 100.0]]
系统自动根据数组中数值的大小将原数据平均分为5分,每个区间间隔为19.8。整个区间的起点为(1,100],由于右侧包含了100因此最大区间的最大值无需扩展,而由于不包括1,因此最小区间的最小值需向左扩展0.1% * 100 = 0.1,即1-0.1 = 0.9。
设置retbins=True,会将分割区间以数组形式显示出来,这个参数一般在bins设置为整数时使用,因为其他bins两种方式都是自定义了这个区间。
arr = np.array([1,5,10,40,36,12,58,62,77,89,100,18,20,25,30,32]) c = pd.cut(arr,5,precision=1,retbins = True) print(c) # ([(0.9, 20.8], (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], ..., (0.9, 20.8], (0.9, 20.8], (20.8, 40.6], (20.8, 40.6], (20.8, 40.6]] # Length: 16 # Categories (5, interval[float64]): [(0.9, 20.8] < (20.8, 40.6] < (40.6, 60.4] < (60.4, 80.2] < (80.2, 100.0]], \# array([ 0.901, 20.8 , 40.6 , 60.4 , 80.2 , 100. ]))
bins自定义分组序列,并指定lables
c = pd.cut(arr,bins = [1,5,18,35,50,100],labels = ['幼儿','少年','青年','中年','老年'],precision=1) print(c) # [NaN, 老年, 少年, 老年, 中年, ..., 少年, 青年, 青年, 青年, 老年] # Length: 16 # Categories (5, object): [幼儿 < 少年 < 青年 < 中年 < 老年]
上述示例的意思是,将原数组按照1-5、5-18、18-35、35-50、50-100(左开右闭)的区间进行划分,划分后分别对应幼儿、少年、青年、中年、老年。
但是由于默认为左开区间所以无法将最小值划到一个给定的区间(如果设置right=False则最大值无对应区间),因此原数组中的第一个数1返回的是NaN,可以设置参数include_lowest=True,则可将最小是包含进去。
c = pd.cut(arr,bins = [1,5,18,35,50,100],labels = ['幼儿','少年','青年','中年','老年'],precision=1,include_lowest=True) print(c) # [幼儿, 老年, 少年, 老年, 中年, ..., 少年, 青年, 青年, 青年, 老年] # Length: 16 # Categories (5, object): [幼儿 < 少年 < 青年 < 中年 < 老年]
上述例子的返回结果包含三项,第一项是每个数属于哪个区间,第二个是原数组长度,第三个是Category对象
如果只想显示第一项、即数组中的每个值属于哪个区间,可设置为labels = False
c= pd.cut(arr,bins = [1,5,18,35,50,100],labels=False,include_lowest=True) print(c) # [0 0 1 3 3 1 4 4 4 4 4 1 2 2 2 2]
转载于:https://www.cnblogs.com/Forever77/p/11342851.html
pandas之cut相关推荐
- pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决
pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决 目录 pandas使用cut函数基于分位数进行连续值分箱(手动计算分位数)处理后出现NaN值原因及解决 ...
- 再见 for 循环!pandas 提速 315 倍~
for是所有编程语言的基础语法,初学者为了快速实现功能,依懒性较强.但如果从运算时间性能上考虑可能不是特别好的选择. 本次东哥介绍几个常见的提速方法,一个比一个快,了解pandas本质,才能知道如何提 ...
- Scikit-Learn大变化:合并Pandas
作者 | Ted Petrou 译者 | 王天宇 编辑 | Jane 出品 | AI科技大本营 [导读]近日,Scikit-Learn 发布了 0.20 版本,这是近年来最大的一次更新.对许多数据科学 ...
- python pandas for循环_高逼格使用Pandas加速代码,向for循环说拜拜!
原标题:高逼格使用Pandas加速代码,向for循环说拜拜! 作者:George Seif 编译:公众号翻译部 全网进行中··· 你为什么劝入/劝退Quant? 前言 使用Pandas datafra ...
- 用 Python 做数据处理必看:12 个使效率倍增的 Pandas 技巧(下)
点击打开链接 7 – 数据框合并 当我们有收集自不同来源的数据时,合并数据框就变得至关重要.假设对于不同的房产类型,我们有不同的房屋均价数据.让我们定义这样一个数据框: prop_rates = pd ...
- 查看某个方法在哪里被调用_一篇文章带你查看并处理Pandas数据
今天我们将一下如何查看Pandas中的各类数据以及对Pandas进行处理的一些方法,通过这些方法我们可以更快的掌握Pandas对数据进行处理: 描述与统计 函数应用 修改列/行索引名称 类型的操作 表 ...
- python pandas教程百家号_python--学习笔记6 pandas
from pandas import Series,DataFrame #注意大小写 import pandas as pd Series的字符串表现形式为:索引在左边,值在右边. 可以通过Serie ...
- python--学习笔记6 pandas
from pandas import Series,DataFrame #注意大小写import pandas as pd Series的字符串表现形式为:索引在左边,值在右边. 可以通过Series ...
- pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...
如果你从事大数据工作,用Python的Pandas库时会发现很多惊喜.Pandas在数据科学和分析领域扮演越来越重要的角色,尤其是对于从Excel和VBA转向Python的用户. 所以,对于数据科学家 ...
最新文章
- C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
- x86中的页表结构和页表项格式
- Keyword-Driven Testing
- js下的keyCode.
- 【Java】字符串编程练习题
- Activity之间的简单跳转
- Entity Framework 4.1 (强转)
- maven 创建project
- BigDecimal用法介绍
- 无法创建新虚拟机: 无法打开配置文件“E:\vmware\Windows7.vmx”: 拒绝访问。
- UE4 官方文档C++编程教程笔记
- ArcGIS版本更新对比
- MongoVue 破解治标不治本
- KDD2020|字节联合密歇根州立大学提出推荐广告联合训练框架RAM(已开源)
- vue-element-admin右侧内容数据量多时,el-menu侧边栏收缩/展开卡顿问题
- 计算机发展简史及其关键技术年表
- 天龙八部 - 其它 - 手工选择
- ACM MM 2022最佳论文奖出炉!哈工大聂礼强团队与快手合作斩获
- 5,10,15,20-四苯基卟啉(TPP)及金属配合物FeTPP/MnTPP/CuTPP/ZnTPP/NiTPP/CoTPP/PtTPP/PdTPP/CdTPP齐岳供应
- 常见花材的固定的方法有哪些_别再傻傻只知道使用花泥了,这4种纯天然花材固定方法你该试试!...
热门文章
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
- BZOJ1014: [JSOI2008]火星人prefix
- 第一章-从双向链表学习设计
- Oracle使用hs odbc连接mssql2008
- 初学 Unsupervised feature learning and deep learning--Sparse autoencoder
- Spring Cloud Sleuth进阶实战
- ionic3 调用本地相册并上传图片
- Ant Build.xml
- Spring Cloud 学习 (五) Zuul
- Bitmap尺度变换