pandas的qcut()方法详解


Posted in Python onJuly 06, 2019

pandas的qcut可以把一组数字按大小区间进行分区,比如

data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])

比如我要把这组数据分成两部分,一半大的,一半小的,如果是小的数,值就变成'small number',大的数,值就变成'large number':

print(pd.qcut(data,[0,0.5,1],labels=['small number','large number']))
small numbers
  large numbers
  small numbers
  small numbers
  small numbers
  large numbers
  small numbers
  large numbers
  large numbers
  small numbers
  large numbers
dtype: category
Categories (2, object): [small numbers < large numbers]

qcut() 方法第一个参数是数据,第二个参数定义区间的分割方法,比如这里把数字分成两半,那就是 [0, 0.5, 1] 如果要分成4份,就是 [0, 0.25, 0.5, 0.75, 1] ,也可以不是均分,比如 [0, 0.1, 0.2, 0.3, 1] ,这就就会按照 1:1:1:7 进行分布,比如:

data = pd.Series([0,8,1,5,3,7,2,6,10,4,9])
print(pd.qcut(data,[0, 0.1, 0.2, 0.3, 1],labels=['first 10%','second 10%','third 10%','70%']))
first 10%
      70%
   first 10%
      70%
   third 10%
      70%
  second 10%
      70%
      70%
      70%
     70%
dtype: category Categories 
(4, object): [first 10% < second 10% < third 10% < 70%]

当然,这里因为数据里有11个数,没法刚好按照 1:1:1:7 分,所以 0和1,都被分到了 'first10%' 这一类.

qcut() 方法第二个参数是要替换的值,就是对应区间的值应该替换成什么值,顺序和区间保持一致就好了,注意有几个区间,就要给几个值,不能多也不能少.

qcut与cut的主要区别:

qcut:传入参数,要将数据分成多少组,即组的个数,具体的组距是由代码计算

cut:传入参数,是分组依据。具体见示例

1、qcut方法,参考链接:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.qcut.html

1).参数:pandas.qcut(x,q,labels=None,retbins=False,precision=3,duplicates='raise')

>>>x 要进行分组的数据,数据类型为一维数组,或Series对象

>>>q 组数,即要将数据分成几组,后边举例说明

>>>labels 可以理解为组标签,这里注意标签个数要和组数相等

>>>retbins 默认为False,当为False时,返回值是Categorical类型(具有value_counts()方法),为True是返回值是元组

2).举例

pandas的qcut()方法详解

2.cut方法,官网链接:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.cut.html

1).参数:pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise')

2).举例

pandas的qcut()方法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python批量合并有合并单元格的Excel文件详解
Apr 05 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
从python读取sql的实例方法
Jul 21 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
python区块链实现简版工作量证明
May 25 Python
pandas 层次化索引的实现方法
Jul 06 #Python
pandas删除行删除列增加行增加列的实现
Jul 06 #Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 #Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 #Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 #Python
python实现爬取百度图片的方法示例
Jul 06 #Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 #Python
You might like
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
在Python中使用next()方法操作文件的教程
2015/05/24 Python
Python中property函数用法实例分析
2018/06/04 Python
python利用微信公众号实现报警功能
2018/06/10 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
自我推荐书
2013/12/04 职场文书
党员大会主持词
2014/04/02 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
公务员考察材料范文
2014/12/23 职场文书
新员工入职感言范文!
2019/07/04 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript