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入门教程
Apr 03 Python
详解python发送各类邮件的主要方法
Dec 22 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Python Django框架模板渲染功能示例
Nov 08 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Python实现自动签到脚本功能
Aug 20 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
python安装sklearn模块的方法详解
Nov 28 Python
python多线程和多进程关系详解
Dec 14 Python
pycharm 的Structure界面设置操作
Feb 05 Python
python urllib和urllib3知识点总结
Feb 08 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数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
js实现常用排序算法
2016/08/09 Javascript
Three.js学习之网格
2016/08/10 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python+微信接口实现运维报警
2016/08/27 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
vue常用指令代码实例总结
2020/03/16 Python
python如何建立全零数组
2020/07/19 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
一篇.NET面试题
2014/09/29 面试题
学校运动会开幕演讲稿
2014/01/04 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
设备收款委托书范本
2014/10/02 职场文书
环卫工人慰问信
2015/02/15 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
新年晚会开场白
2015/05/29 职场文书
仓库管理制度范本
2015/08/04 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
分享python函数常见关键字
2022/04/26 Python