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

yizhihongxing

当我们需要将连续性数据进行离散化时,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日

相关文章

  • Pandas 常用函数

    那么下面我来详细讲解Pandas常用函数的完整攻略,包含一些实例说明。 一、Pandas概述 Pandas是一个基于NumPy的Python数据分析库,可用于大量数据处理任务,例如合并、切片、筛选、聚合等数据处理。它具有以下优点: 提供了灵活的数据结构DataFrame和Series,方便数据操作; 可以高效地处理大型数据集; 可以自动对齐数据; 可以快速处…

    python-answer 2023年3月27日
    00
  • 如何在 Matplotlib 中更改绘图背景的实现

    在Matplotlib中更改绘图背景的方法有两种:使用rcParams和使用figure对象。我们将按照以下步骤逐一讲解。 方法一:使用rcParams 首先,导入matplotlib库: import matplotlib.pyplot as plt 通过使用rcParams更改背景色。将以下代码添加到你的程序中: plt.rcParams[‘figure…

    python 2023年6月14日
    00
  • 在Python中向现有的Pandas DataFrame添加字典和系列的列表

    在Python中,可以使用Pandas来创建和操作数据帧(DataFrame),在实际的数据处理过程中,需要向现有的DataFrame添加字典和系列的列表,在此,提供以下完整攻略及实例说明。 向Pandas DataFrame添加字典 在Pandas中,可以使用append()方法向Dataframe中添加字典,示例如下: import pandas as …

    python-answer 2023年3月27日
    00
  • Pandas数据类型转换df.astype()及数据类型查看df.dtypes的使用

    Pandas是Python中数据分析的重要库之一,数据类型转换和查看数据类型是数据分析的基础,本攻略聚焦于Pandas数据类型转换及数据类型查看的使用。 Pandas数据类型转换df.astype()的使用 1.语法格式 DataFrame.astype(dtype, copy=True, errors=’raise’) 2.参数说明 dtype:指定数据类…

    python 2023年5月14日
    00
  • pandas数据筛选和csv操作的实现方法

    下面是详细讲解“pandas数据筛选和csv操作的实现方法”的完整攻略。 一、pandas数据筛选 Pandas是一个强大的数据分析和处理库,其中有很多用于数据筛选的方法。 1. 根据某一列的条件筛选 使用 .loc 方法,可以通过某一列的条件进行数据筛选。例如,以下代码会选出某一列数据值大于5的所有行: import pandas as pd # 读取数据…

    python 2023年6月13日
    00
  • 通过Python实现对SQL Server 数据文件大小的监控告警功能

    下面是通过Python实现对SQLServer数据文件大小的监控告警功能的完整攻略。 1.环境配置 首先需要安装pyodbc模块,可以使用以下命令安装: pip install pyodbc 然后需要安装SQL Server Native Client或相应的ODBC驱动程序。使用pyodbc连接SQL Server时,需要通过DSN或者连接字符串来指定连接…

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

    Pandas是Python语言中非常常用的数据处理和数据分析的库,其提供的数据结构包括了Series和DataFrame。本文我们将着重介绍Series这个数据结构的使用方法。 一、什么是Series Series是一个带索引标签的一维数组,可以用来存储任意类型的相似或不相似的数据类型。在这个数据结构中,标签通常称为索引,它们对应于每个特定数据点。 二、创建…

    python 2023年5月14日
    00
  • Pandas是什么?Pandas的特点与优势

    Pandas 是一个开源的第三方 Python 库,从 Numpy 和 Matplotlib 的基础上构建而来,享有数据分析“三剑客之一”的盛名(NumPy、Matplotlib、Pandas)。目前,Pandas 已经成为 Python 数据分析的必备高级工具,它的目标是成为强大、灵活、可以支持任何编程语言的数据分析工具。 Pandas 最初由 Wes M…

    2023年3月4日
    00
合作推广
合作推广
分享本页
返回顶部