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

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日

相关文章

  • 将Excel电子表格加载为pandas DataFrame

    将Excel电子表格加载为pandas DataFrame大致有以下几个步骤: 安装pandas库 首先,需要在python环境下安装pandas库,可以使用pip命令进行安装。若使用的是anaconda环境,可以不用安装,已经包含了pandas库。 # pip安装 pip install pandas 导入pandas库 加载pandas库,将其导入Pyt…

    python-answer 2023年3月27日
    00
  • 选择python进行数据分析的理由和优势

    下面是我准备的完整攻略。 选择Python进行数据分析的理由 Python 是一种可靠且易于使用的数据处理和分析工具。对于那些希望使用数据处理工具的人员来说,学习 Python 可以给他们带来许多好处。 以下是选择 Python 进行数据分析的理由: 1. Python 社区庞大 Python 拥有一个庞大、活跃、支持性强的社区——Python 社区。在这个…

    python 2023年5月14日
    00
  • 读Json文件生成pandas数据框详情

    读取Json文件并转换为pandas数据框可以分为以下几个步骤: 1. 导入依赖库 使用pandas库读取json文件需要先导入pandas库。 import pandas as pd 2. 读取Json文件 使用pandas库的read_json()函数读取json文件,该函数读取后返回一个DataFrame对象。 df = pd.read_json(‘e…

    python 2023年5月14日
    00
  • 在Pandas Dataframe中使用for循环创建一个列

    在Pandas Dataframe中,可以使用for循环来创建一个新的列,下面是具体的操作步骤及代码示例: 创建一个空的Dataframe,可以使用pandas.DataFrame()方法: import pandas as pd data = pd.DataFrame() 创建一个列表或者Series存储该列的数据: names = [‘Alice’, ‘…

    python-answer 2023年3月27日
    00
  • 对pandas中apply函数的用法详解

    让我来为你详细讲解一下“对pandas中apply函数的用法详解”的完整攻略。 1. 什么是apply函数 在pandas中,apply函数是一种非常实用的函数,它可以对pandas的一个列或行进行操作,通常结合lambda表达式一起使用。apply函数的语法如下所示: DataFrame.apply(func, axis=0, broadcast=Fals…

    python 2023年5月14日
    00
  • python plotly画柱状图代码实例

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

    python 2023年6月13日
    00
  • Python数据分析Pandas Dataframe排序操作

    下面是关于“Python数据分析Pandas Dataframe排序操作”的完整攻略。 一、Pandas Dataframe排序操作 Pandas是基于Numpy开发的数据分析工具,最重要的两个数据结构是Series和DataFrame,其他的几乎都是在这两个数据结构的基础上进行扩展的。 Pandas Dataframe排序操作是数据分析中常用的操作之一,常…

    python 2023年5月14日
    00
  • 在pandas中遍历DataFrame行的实现方法

    在Pandas中遍历DataFrame行的实现方法有以下几种: 使用iterrows(): 使用iterrows()能够返回DataFrame中的每一行,然后使用for循环遍历每一行,对每一行做需要的操作。以下是一个示例代码: import pandas as pd df = pd.read_csv(‘data.csv’) for index, row in…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部