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 相关文章推荐
pytorch构建网络模型的4种方法
Apr 13 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
django 将model转换为字典的方法示例
Oct 16 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
python有几个版本
Jun 17 Python
python编程实现清理微信重复缓存文件
Nov 01 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
python中validators库的使用方法详解
Sep 23 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
SONY SRF-M100的电路分析
2021/03/02 无线电
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python文件路径操作方法总结
2020/12/21 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
小学生班会演讲稿
2014/01/09 职场文书
主持词开场白
2014/03/17 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
项目经理任命书
2014/06/04 职场文书
聘用意向书
2014/07/29 职场文书
晚会开幕词
2015/01/28 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL