pandas pd.cut()与pd.qcut()的具体实现

当我们需要将连续性数据进行离散化时,pandas中提供了两个方法pd.cut()和pd.qcut()。pd.cut()是基于指定的区间对数据进行划分,而pd.qcut()则是面向数据分布的方式进行划分。下面将具体介绍这两个方法的使用。

pd.cut()

基本结构

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ordered=True)
  • x: 要划分的数据
  • bins: 分段的依据
  • right: 分段左右边界
  • labels: 用来标定每个区间的标签
  • retbins: 是否返回每个分段的边界
  • precision: 分段值舍入精度
  • include_lowest: 是否包含分段范围的下界
  • duplicates: 是否处理重复值
  • ordered: 是否保持顺序

bins参数可以是整数个数或者实现构成的序列,bins参数可以是最小值和最大值的列表或元组,它们将作为最小值和最大值之间的最小和最大值。

示例

import pandas as pd
import numpy as np

data = np.random.randint(10, 50, size=10)
bins = [10, 20, 30, 40, 50]

res = pd.cut(data, bins, labels=['区间1', '区间2', '区间3', '区间4'])
print(res)

接下来对上面代码的输出结果进行解析,输出结果为:

[区间1, 区间3, 区间3, 区间3, 区间1, 区间4, 区间3, 区间2, 区间3, 区间2]
Categories (4, object): ['区间1' < '区间2' < '区间3' < '区间4']

通过该示例,可以看出pd.cut()方法将实数变量映射到有限的类别。对于偏向正态分布的两段随机序列,每3个值对应于一个类别。

pd.qcut()

基本结构

pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')
  • x: 要划分的数据
  • q: 要划分的区间数
  • labels: 用来标定每个区间的标签
  • retbins: 是否返回每个分段的边界
  • precision: 分段值舍入精度
  • duplicates: 是否处理重复值

q参数是要划分的区间数,为整数时,则将变量划分为等宽的区间,为序列时则将数据划分成该序列中每个端点所划定的区间。

示例

import pandas as pd
import numpy as np

data = np.random.rand(10)*10
res1 = pd.qcut(data, 4, labels=['区间1', '区间2', '区间3', '区间4'])
res2 = pd.qcut(data, [0, 0.1, 0.5, 0.9, 1], labels=['区间1', '区间2', '区间3', '区间4'])

print(res1, '\n')
print(res2)

接下来对上面代码的输出结果进行解析,输出结果为:

[区间4, 区间1, 区间4, 区间3, 区间4, 区间1, 区间1, 区间4, 区间2, 区间4]
Categories (4, object): ['区间1' < '区间2' < '区间3' < '区间4'] 

[区间1, 区间3, 区间2, 区间2, 区间2, 区间2, 区间2, 区间4, 区间3, 区间4]
Categories (4, object): ['区间1' < '区间2' < '区间3' < '区间4']

上述代码中第一个使用了4等分的区间数,而第二个示例的区间数的列表[0, 0.1, 0.5, 0.9, 1]中4个元素刻画了不同分位数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas pd.cut()与pd.qcut()的具体实现 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python绘制箱型图

    下面是Python绘制箱型图的完整攻略: 一、简介 箱型图(Box plot)是一种用来展示一个数据集分散情况的统计图表。它主要用来展示多个数据集之间的比较,其中包括了最大值、最小值、中位数和四分位数(上四分位数和下四分位数)。箱型图的绘制依赖于matplotlib库。 二、箱型图的使用 1. 导入库 绘制箱型图前,需要导入numpy和matplotlib库…

    python 2023年6月13日
    00
  • Python pandas.DataFrame 找出有空值的行

    要找出pandas.DataFrame中有空值的行,可以使用以下步骤: 使用.isnull()函数来检查数据中的空值。例如,我们有一个名为df的DataFrame: import pandas as pd df = pd.DataFrame({‘A’: [1, 2, None], ‘B’: [5, None, 7], ‘C’: [9, 10, 11]}) p…

    python 2023年6月13日
    00
  • pandas中聚合函数agg的具体用法

    Pandas是Python中广受欢迎的数据处理库,其中agg函数是一种非常常用的聚合函数,本文将为您介绍该函数的具体用法。 什么是聚合函数 在数据分析中,我们有时需要对数据进行汇总分析,例如对于一组数据,我们可能需要统计其平均值、最大值、最小值等统计量。这些计算方法就是聚合函数(Aggregation Function)。在Pandas中,聚合函数的统计操作…

    python 2023年5月14日
    00
  • Pandas读取MySQL数据到DataFrame的方法

    这篇文章将详细讲解如何使用Pandas读取MySQL数据到DataFrame的方法。Pandas是一个在Python中非常流行的数据处理工具,而MySQL则是一个流行的关系型数据库。通过将这两个工具结合起来,我们可以轻松地将MySQL中的数据读取到Pandas的DataFrame中,利用DataFrame进行进一步的数据分析工作。 步骤一:安装必备的Pyth…

    python 2023年5月14日
    00
  • pandas 数据结构之Series的使用方法

    我来详细讲解一下“pandas数据结构之Series的使用方法”的完整攻略。 1. Series简介 Series是pandas库中一种基本的数据结构,它类似于一维的数组或者列表,并且带有标签(label),这样就可以根据标签名快速定位数据。Series通常用来存储一列数据,其由两个主要部分组成:索引(index)和数据(data)。索引是Series对象中…

    python 2023年5月14日
    00
  • 如何将 Pandas 系列转换为 Python 列表

    将 Pandas 数据结构转换为 Python 标准数据结构的操作是非常重要的,因为它允许你在 Pandas 和其他 Python 库之间自由地进行数据交换和操作。 在 Pandas 中,Series 是一种带有标签的一维数组,可以将 Pandas Series 数据结构转换为列表,可以使用 pandas.Series.values 属性或 tolist()…

    python-answer 2023年3月27日
    00
  • Pandas操作MySQL的方法详解

    这里提供一份Pandas操作MySQL的方法详解,具体步骤如下: 1. 安装必要的Python库 要使用Pandas操作MySQL,需要安装一些必要的Python库,包括: Pandas PyMySQL 可以通过以下命令安装: pip install pandas pip install pymysql 2. 连接MySQL数据库 在Python中,连接My…

    python 2023年5月14日
    00
  • 在pandas DataFrame的顶部添加一个行

    在 Pandas DataFrame 中添加新行通常有两种方法: 使用 .loc[] 方法添加一个作为索引的 Series 对象; 通过一个字典类型添加一行数据。 我们以一个例子来说明如何在 Pandas DataFrame 顶部添加一个行。假设我们有一个包含员工信息和工资的 DataFrame,其中列分别为 姓名,年龄,性别 和 工资。 import pa…

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