pandas的qcut()方法详解

yipeiwu_com6年前Python基础

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).举例

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).举例

    

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python实现CET查分的方法

Python CET自动查询方法需要用到的python方法模块有:sys、urllib2 本文实例讲述了Python实现CET查分的方法。分享给大家供大家参考。具体实现方法如下: 复制代...

Python的Twisted框架上手前所必须了解的异步编程思想

Python的Twisted框架上手前所必须了解的异步编程思想

前言 最近有人在Twisted邮件列表中提出诸如"为任务紧急的人提供一份Twisted介绍"的需求。值得提前透露的是,这个系列并不会如他们所愿。尤其是介绍Twisted框架和基于Pyth...

使用Python制作微信跳一跳辅助

使用Python制作微信跳一跳辅助

1.  前言 微信的跳一跳相信大家都很熟悉了,而且现在各种外挂、辅助也是满天飞,反正本人的好友排行榜中已经是八九百都不足为奇了。某宝上一搜一堆结果,最低的居然只要3块多,想刷多...

python安装twisted的问题解析

python安装twisted的问题解析

今天在用pip安装wisted模块的时候没有任何的问题,但是当使用的时候发生了,无法导入win32api这个包,原因是因为python不能自己去使用系统的api。因此需要去安装pywin...

Python处理JSON数据并生成条形图

Python处理JSON数据并生成条形图

一、JSON 数据准备 首先准备一份 JSON 数据,这份数据共有 3560 条内容,每条内容结构如下: 本示例主要是以 tz(timezone 时区) 这一字段的值,分析这份数据里时...