浅谈pandas.cut与pandas.qcut的使用方法及区别

yizhihongxing

浅谈pandas.cut与pandas.qcut的使用方法及区别

pandas.cut

pandas.cut是用于对一列数据进行分段操作的函数。其语法形式为:

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

参数说明:

  • x:需要分段的数据
  • bins:可以是一个int型数据(代表分为几段),也可以是一个列表,代表每一段的范围
  • right:是否包含右端点,默认为True,即包含
  • labels:分段后各个段的标签
  • retbins:是否返回每一段分隔点的具体位置
  • precision:保留几位小数
  • include_lowest:是否包含最小值,若设置为True,则第一段左端点为数据的最小值,否则为最小值+epsilon
  • duplicates:处理范围重复的数据的方法。raise:直接抛出异常(默认);drop:去除;cut:将重复的位置分配到不同的区间中。

示例:

import pandas as pd

# 构造数据
data = pd.Series([23, 24, 25, 25, 26, 27, 29, 30, 32, 35, 38])

# 将数据分为3段
cut_data = pd.cut(data, bins=3)
print(cut_data)

# 指定labels以及不包含右端点
cut_data = pd.cut(data, bins=3, right=False, labels=['A', 'B', 'C'])
print(cut_data)

# 返回每一段的分隔点位置
cut_data, bins = pd.cut(data, bins=3, right=False, labels=['A', 'B', 'C'], retbins=True)
print(cut_data)
print(bins)

输出:

0      (22.977, 27.667]
1      (22.977, 27.667]
2      (22.977, 27.667]
3      (22.977, 27.667]
4      (22.977, 27.667]
5      (22.977, 27.667]
6      (27.667, 32.333]
7      (27.667, 32.333]
8      (27.667, 32.333]
9      (27.667, 32.333]
10    (32.333, 37.0033]
dtype: category
Categories (3, interval[float64]): [(22.977, 27.667] < (27.667, 32.333] < (32.333, 37.0033]]
0    A
1    A
2    A
3    A
4    A
5    A
6    B
7    B
8    B
9    B
10   C
dtype: category
Categories (3, object): ['A' < 'B' < 'C']
0    A
1    A
2    A
3    A
4    B
5    B
6    B
7    B
8    C
9    C
10   C
dtype: category
Categories (3, object): ['A' < 'B' < 'C']
[23.         26.33333333 29.66666667 35.        ]

pandas.qcut

pandas.qcut是用于将数据均分为n段的函数,每一段的样本数量大致相同。其语法形式为:

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

参数说明:

  • x:需要分段的数据
  • q:一个整数时,为分成几段。为列表时,分段的分位数位置。
  • labels:分段后的标签
  • retbins:是否返回每一段分隔点的具体位置
  • duplicates:处理范围重复的数据的方法。raise:直接抛出异常(默认);drop:去除;cut:将重复的位置分配到不同的区间中。

示例:

import pandas as pd

# 构造数据
data = pd.Series([23, 24, 25, 25, 26, 27, 29, 30, 32, 35, 38])

# 将数据分为3段
qcut_data = pd.qcut(data, 3)
print(qcut_data)

# 指定labels
qcut_data = pd.qcut(data, 3, labels=['A', 'B', 'C'])
print(qcut_data)

# 返回每一段的分隔点位置
qcut_data, bins = pd.qcut(data, 3, labels=['A', 'B', 'C'], retbins=True)
print(qcut_data)
print(bins)

输出:

0     (22.999, 26.0]
1     (22.999, 26.0]
2     (22.999, 26.0]
3     (22.999, 26.0]
4     (22.999, 26.0]
5     (26.0, 30.333]
6     (26.0, 30.333]
7     (26.0, 30.333]
8     (30.333, 38.0]
9     (30.333, 38.0]
10    (30.333, 38.0]
dtype: category
Categories (3, interval[float64]): [(22.999, 26.0] < (26.0, 30.333] < (30.333, 38.0]]
0    A
1    A
2    A
3    A
4    A
5    B
6    B
7    B
8    C
9    C
10   C
dtype: category
Categories (3, object): ['A' < 'B' < 'C']
0     A
1     A
2     A
3     A
4     A
5     B
6     B
7     B
8     C
9     C
10    C
dtype: category
Categories (3, object): ['A' < 'B' < 'C']
[23, 26], (26, 30.333], (30.333, 38]]
Categories (3, object): ['A' < 'B' < 'C']]
[22.999, 26.0, 30.333, 38.0]

区别

  • pandas.cut的分段是固定的,即指定分几段或每一段的范围;
  • pandas.qcut是按照样本数量来分段的,每一段的样本数量大致相同,在这个意义上说,方式更偏向于“自然分段”。

两者使用的选择依据实际数据而定。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈pandas.cut与pandas.qcut的使用方法及区别 - Python技术站

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

相关文章

  • python 使用pandas读取csv文件的方法

    下面是关于“python 使用pandas读取csv文件的方法”的完整攻略: 1. 安装pandas库 要使用pandas,我们需要首先安装pandas库。可以使用pip工具进行安装,命令如下: pip install pandas 2. 导入pandas库 安装完pandas库后,在要使用它的程序中需要进行导入操作。可以使用以下代码导入pandas: im…

    python 2023年5月14日
    00
  • 如何在Python中把Sklearn数据集转换成Pandas数据框

    将sklearn数据集转换成pandas数据框的过程相对简单,可以按照以下步骤进行: 导入所需的库和数据集 from sklearn import datasets import pandas as pd 在此示例中,我们使用iris数据集。 iris = datasets.load_iris() 创建数据框 将用于创建数据框的数据分离出来,并建立一个列表。…

    python-answer 2023年3月27日
    00
  • Python引用(import)文件夹下的py文件的方法

    当我们想要在一个Python文件中引用(import)文件夹下的其他.py文件时,有以下几种方法: 方法一:使用sys.path.append()添加路径 首先需要用sys.path.append()将该文件夹的路径添加到Python的搜索路径中,这样才能让Python找到该文件夹下的.py文件。在本例中,假设我们想要引用文件夹 file夹 下的py文件 m…

    python 2023年5月14日
    00
  • Pandas检查dataFrame中的NaN实现

    当使用 pandas 库载入数据后,发现数据集中存在缺失值( NaN ),需要对这些缺失值进行处理。Pandas 库提供了一些方法来检查 DataFrame 中的 NaN 值,以及处理这些值的不同方式,下面我将为您详细讲解这个过程。 检查 DataFrame 中的 NaN 可以使用 isnull() 或 isna() 函数来检查 DataFrame 中的缺失…

    python 2023年5月14日
    00
  • Python实现加载及解析properties配置文件的方法

    Python 是一种非常流行的编程语言,由于其语法简单,易于上手,因此被广泛应用于各种场景中,例如网络编程、数据分析、机器学习等。在实现 Python 代码中,读取和解析 properties 配置文件是一种比较常见的需求。在本文中,我们将详细讲解 Python 实现加载及解析 properties 配置文件的方法的完整攻略。 什么是 properties …

    python 2023年6月13日
    00
  • python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)

    一、iloc、loc与icol的用法 iloc和loc是pandas中选取行或列的常用方法,其中iloc使用整数通过行/列号选取数据,loc使用标签通过列/行名选取数据。与此类似,icol方法用于使用整数获取DataFrame的列。 在DataFrame中使用这些方法时,可以使用: 切片:例如df.iloc[:,0:2]表示选取所有行和第0、1两列的数据 花…

    python 2023年5月14日
    00
  • Python Pandas中的数据框架属性

    接下来我会为你详细讲解Python Pandas中的数据框架属性,同时给出实例说明。 Python Pandas是一个基于Numpy的数据处理和分析工具,其中最重要的数据结构是数据框架DataFrame。数据框架是一种二维表格结构,每列可以是不同的数据类型(如整数、浮点数、字符串等),其类似于Excel或SQL表。下面就是一些关于数据框架属性详细讲解以及示例…

    python-answer 2023年3月27日
    00
  • 如何在Python中打印没有索引的Dataframe

    为了打印没有索引的Dataframe,我们需要首先禁用Dataframe的索引列。可以通过在Dataframe上使用reset_index方法将索引列重置为默认的数字索引,并将其存储在一个新变量中,如下所示: import pandas as pd # 创建没有索引的Dataframe df = pd.DataFrame({‘A’: [1, 2, 3], ‘…

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