pandas.qcut()方法详解与cut对比

洛溪
洛溪
发布时间:2026-10-13| 7人浏览过
原创

本文详细介绍pandas库中qcut()函数的用法,包括如何按分位数对数据进行分组、自定义标签及处理边界情况。同时对比qcut与cut的核心区别:qcut按组数自动计算区间,cut需指定具体区间边界。

qcut()函数基本用法

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];若分为四组,分割点为[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的主要区别在于分组依据:

qcut:传入参数为组数,即数据被划分为多少组,具体的区间边界由算法自动计算得出。

cut:传入参数为具体的区间边界(bins),即分组依据是预先定义的数值范围。

qcut参数详解

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,此时返回值为Categorical类型(支持value_counts()方法);若设为True,返回值则为元组。

2).示例

cut方法参数说明

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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。