如何使用pandas cut()和qcut()

yizhihongxing

pandas是一个强大的数据分析和处理库,其中包含了许多用于数据分割、分组和汇总的工具。其中两个特别有用的函数是cut()和qcut(),它们可以用来将数据划分为不同的区间或者分位数,并为每个区间或分位数分配一个标签。

pandas cut()函数

pandas cut()函数提供了一种将一组值划分为不同区间(也称为‘面元’)的方式。cut()函数可以接收多种不同类型的输入:

pandas.cut(x: array-like, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ordered=True)

参数解释:

  • x : array-like,需要划分的一组数据
  • bins : int, sequence of scalars, or pandas.IntervalIndex, 定义要使用的面元。如果是int,bins+1会作为面元数量。如果是序列,则序列中的每个相邻元素将组成面元。如果给定IntervalIndex,则使用面元定义。
  • right: bool, optional,默认为True,表示是否将面元包含在右边的闭区间内。
  • labels: array or bool, optional,默认为None。如果指定,则必须与面元数量匹配。 用于为结果分组指定标签。
  • retbins: bool, optional,默认为False。 是否返回创建面元的bins。
  • precision: int, optional,默认为3,表示精度。
  • include_lowest: bool, optional,默认为False。第一个面元的左侧是否包括数据的最小值。
  • duplicates: {default ‘raise’, ‘drop’}, optional。识别重复面元。保留重复的面元或者实际上只返回唯一面元的数量,取决于选择的参数。
  • ordered: bool, optional,默认为True。表示结果面元是否有序。

下面是一个简单的示例:

import pandas as pd
import numpy as np

#定义一组数据
ages = [20,22,25,27,21,23,37,31,61,45,41,32]

#将数据划分为年龄段
bins = [18,25,35,60,100]
cats = pd.cut(ages, bins)

#输出结果
print(cats)

输出结果为:

[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60], (35, 60], (25, 35]]
Length: 12
Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]

可以看到,经过cut()函数的处理后,我们已经成功将一组年龄数据划分为了4个年龄段,其中每个年龄段都被赋予了不同的标签。

pandas qcut()函数

pandas qcut()函数是另外一种将数据拆分成差不多长度的等分位的方法。因此,每个分组的元素数量大约相同。使用qcut的主要目的是通过仅使用样本分位数来获得相等的大小的桶。切割只是进行数字之间的比较,并按获取适当数目的占位符分段,因此结果数组的大小可能与传递给它的数组长度不同。

pandas.qcut(x: array-like, q, labels=None, retbins=False, precision=3, duplicates='raise')

参数解释:

  • x: array-like,为需要分位数的一组值
  • q: int,float或者sequence of percentiles,表示分割的点数或者分位数
  • labels: array或者bool,可选。为分配到的面元定义标签
  • retbins: bool, optional,默认为False,表示是否返回用于拆分的bins
  • precision: int, optional,默认为3,表示精度
  • duplicates: {default ‘raise’, ‘drop’}, optional。识别重复面元。保留重复的面元或者实际上只返回唯一面元的数量,取决于选择的参数。

下面是一个简单的示例:

#定义一组数据
data = np.random.randn(1000)
#用qcut将其分为10个部分,并将结果存储在cuts变量中
cuts = pd.qcut(data, 10)

#使用value_counts函数计算每个部分的数量
print(pd.value_counts(cuts))

输出结果为:

(-3.363, -1.325]     100
(-0.0304, 0.423]     100
(0.698, 1.397]       100
(-0.746, -0.412]     100
(0.423, 0.698]       100
(1.397, 3.201]       100
(-1.325, -0.746]     100
(-1.939, -1.325]     100
(-0.412, -0.0304]    100
(-0.0304, 0.263]     100
dtype: int64

可以看到,经过qcut()函数的处理后,我们已经成功将一组数据平均地分成了10份,并将每份的结果存储到了不同的变量中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用pandas cut()和qcut() - Python技术站

(1)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 从Pandas数据框架中删除列中有缺失值或NaN的行

    在Pandas中,我们可以使用dropna()方法来从数据框架中删除具有缺失值或NaN值的行或列。 为了删除列中有缺失值或NaN的行,我们需要在dropna()方法中指定轴向参数axis=0。此外,我们还需要指定subset参数以确定要处理的列。 以下是完整的过程及示例代码: 导入Pandas库并读入数据: import pandas as pd df = …

    python-answer 2023年3月27日
    00
  • Pandas通过行或列的总和来过滤一个数据框架

    Pandas是一个强大的Python数据分析库,可以通过行或列的总和来过滤一个数据框架。下面是通过行或列的总和来过滤一个数据框架的详细攻略: 1. 导入pandas模块并创建数据框架 首先需要导入pandas模块,然后创建一个数据框架以便我们可以使用。 import pandas as pd #创建数据框架 data = {‘A’: [1, 2, 3, 4]…

    python-answer 2023年3月27日
    00
  • pandas进行数据输入和输出的方法详解

    介绍 pandas是一个Python数据分析库,功能强大,常用于数据的处理、清洗、转换和分析。在使用pandas时,输入和输出数据是常见的操作之一。pandas提供了多种数据输入和输出的方式,包括读取csv、excel、json、sql、html等格式文件以及向这些格式文件写入数据。本文将详细讲解pandas进行数据输入和输出的方法,帮助读者充分掌握pand…

    python 2023年5月14日
    00
  • 在Python Pandas中获取列的数据类型

    在Python Pandas中,我们可以通过dtypes属性获取数据框中各列数据的数据类型。此外,我们也可以使用info()方法来获取每列数据的数据类型和空值情况。 以下是一个示例数据框: import pandas as pd df = pd.DataFrame({‘col1’: [1, 2, 3], ‘col2’: [‘a’, ‘b’, ‘c’], ‘c…

    python-answer 2023年3月27日
    00
  • python plotly画柱状图代码实例

    下面是详细的“Python Plotly画柱状图代码实例”的攻略: 准备工作 在开始画图之前,我们需要确保准备好了以下两项工作: 安装plotly库:我们可以使用pip install plotly进行安装,如果你使用的是Jupyter Notebook,还需要使用jupyter labextension install @jupyterlab/plotly…

    python 2023年6月13日
    00
  • python对列进行平移变换的方法(shift)

    Python中的numpy库提供了一种对数组进行平移变换的方法,是通过np.roll()函数来实现。np.roll()函数可以对数组中的元素进行循环移位,并可以指定移位的数量和方向。 下面是该方法的详细攻略: 语法 numpy.roll(arr, shift, axis=None) arr :要进行平移的数组 shift :表示平移的数量,可以是正数(向右移…

    python 2023年5月14日
    00
  • 在Pandas中使用散点矩阵绘制配对图

    散点矩阵(Scatter Matrix)是基于 Pandas 的一个绘图函数。它们绘制一组变量的散点图矩阵。散点图矩阵对于观察多个相互关联的变量之间的关系非常有用。在 Pandas 中,我们可以使用 scatter_matrix 函数实现散点矩阵的绘制。 下面我们就来讲一下如何在 Pandas 中使用 scatter_matrix 绘制配对图,并提供一个例子…

    python-answer 2023年3月27日
    00
  • 使用Regex从给定的Pandas DataFrame的指定列中提取日期

    首先,我们需要安装Python中的正则表达式库re。在命令行或者jupyter notebook中输入以下命令进行安装: !pip install re 接下来,我们需要对DataFrame中的日期列进行正则匹配并提取出日期。 假设我们有以下DataFrame: import pandas as pd data = {‘日期’: [‘2022/05/01 1…

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部