Pandas Cut–从连续到分类

下面我就来详细讲解一下Pandas Cut的使用。

什么是Pandas Cut

Pandas Cut是一种将连续数据转换为分类数据的函数。它可将连续的数值数据分段,每一段转化为一个离散的分类,同时可以对这些离散的分类进行标记和排序。

Cut函数的语法

Pandas Cut函数的语法如下:

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

其中,各个参数的含义如下:

  • x:要分段的数据,必须为一维的数组或Series对象;
  • bins:指定分段的方式,可以是根据数据的数量分段,也可以是根据数据的范围分段;
  • right:bool型参数,默认是True,表示区间是否包含右端点;
  • labels:指定每个分段的标签名称;
  • retbins:bool型参数,默认是False,表示是否返回每个分段的阈值;
  • precision:int型参数,表示指定分段时的精度;
  • include_lowest:bool型参数,默认是False,表示是否包含最小值;
  • duplicates:处理重复值的方式,可以是raise、drop、ignore。

Cut函数的使用实例

下面,我就通过一个实例来演示Cut函数的使用。

假设我们现在有一个存储分数的DataFrame数据,如下所示:

import pandas as pd
import numpy as np

df = pd.DataFrame({"score": [51, 71, 78, 85, 90, 95, 98]})
print(df)

运行结果如下:

   score
0     51
1     71
2     78
3     85
4     90
5     95
6     98

我们希望将这些分数按照一定的规则划分到若干个分段中,可以使用Pandas Cut进行处理。根据我们自己的需要,可以针对不同的数据集使用不同的分段规则。下面是三种不同的分段方式:

分段方式1:根据分数的范围划分

bins = [0, 60, 70, 80, 90, 100]
df['categories1'] = pd.cut(df['score'], bins)

print(df)

运行结果如下:

   score categories1
0     51    (0, 60]
1     71   (70, 80]
2     78   (70, 80]
3     85   (80, 90]
4     90  (90, 100]
5     95  (90, 100]
6     98  (90, 100]

可以看到,我们按照分数的范围为[0, 60),[60, 70),[70, 80),[80, 90),[90, 100],分成了5个离散的分类。

分段方式2:根据平均数和标准差划分

mean = df['score'].mean()
std = df['score'].std()

bins = [-np.inf, mean - std, mean, mean + std, np.inf]
labels = ['low', 'avg-', 'avg+', 'high']
df['categories2'] = pd.cut(df['score'], bins, labels=labels)

print(df)

运行结果如下:

   score categories1 categories2
0     51    (0, 60]         low
1     71   (70, 80]       avg-
2     78   (70, 80]       avg+
3     85   (80, 90]       high
4     90  (90, 100]       high
5     95  (90, 100]       high
6     98  (90, 100]       high

可以看到,我们针对这些分数,根据平均数和标准差,分成了四个离散的分类,并对这些分类进行了标记。

分段方式3:根据数据的数量划分

bins = 3
df['categories3'] = pd.cut(df['score'], bins)

print(df)

运行结果如下:

   score categories1 categories2    categories3
0     51    (0, 60]         low  (50.975, 69.0]
1     71   (70, 80]       avg-    (69.0, 87.0]
2     78   (70, 80]       avg+    (69.0, 87.0]
3     85   (80, 90]       high    (69.0, 87.0]
4     90  (90, 100]       high   (87.0, 100.0]
5     95  (90, 100]       high   (87.0, 100.0]
6     98  (90, 100]       high   (87.0, 100.0]

可以看到,我们针对这些分数,根据数据的数量,分成了三个离散的分类。

小结

Pandas Cut函数是一种将连续数据转换为分类数据的函数,并且可以根据需求实现不同的分段规则。除了本文介绍的三种方式,还可以根据自己的需求进行划分,灵活运用Cut函数能够帮助我们更好地理解和分析数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas Cut–从连续到分类 - Python技术站

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

相关文章

  • 如何使用Pandas在Python中创建透视表

    创建透视表是Pandas中非常强大和实用的功能之一。下面是使用Pandas在Python中创建透视表的完整攻略。我们将通过以下步骤来完成: 1.了解透视表的基本概念和用途。2.准备数据。3.创建透视表。4.对透视表进行操作和查询。 1.了解透视表的基本概念和用途。 透视表是一种数据汇总工具,可以快速地将大量的数据汇总并生成表格。常常用于数据分析和报表生成。在…

    python-answer 2023年3月27日
    00
  • 解决一个pandas执行模糊查询sql的坑

    当使用Pandas进行SQL查询时,我们可能会遇到Pandas执行模糊查询SQL的坑。具体来说,Pandas使用“like”模糊查询时,使用%通配符,并添加引号时会出现报错的情况。下面是解决这个问题的完整攻略: 1. 背景分析 当我们要在Pandas中使用“like”模糊查询时,可以使用以下格式: df[df[‘column’].str.contains(‘…

    python 2023年5月14日
    00
  • Pandas提取单元格的值操作

    Pandas是Python中一个功能强大的数据处理库,提供了多种方法来操作和处理数据。在Pandas中,我们经常需要提取某个单元格的值以进行后续的计算和处理。本文将详细讲解Pandas如何提取单元格的值,包括以下几个方面: loc和iloc方法 at和iat方法 示例说明 1. loc和iloc方法 Pandas提供了两种方法来对DataFrame中的元素进…

    python 2023年5月14日
    00
  • 如何在Pandas中基于日期过滤数据框架行

    在Pandas中基于日期过滤数据框架行通常需要使用布尔索引。下面是一些基本的步骤: 转换日期列格式 首先,要确保在数据框架中日期列是合适的格式,通常是Datetime格式。你可以使用 pd.to_datetime() 方法把字符串格式的日期列转换成Pandas中的Datetime格式,如下所示: import pandas as pd # 创建一个数据框架 …

    python-answer 2023年3月27日
    00
  • python向xls写入数据(包括合并,边框,对齐,列宽)

    下面就是关于Python向xls写入数据(包括合并,边框,对齐,列宽)的完整攻略。 一、需求背景 我们在日常的工作和生活中,经常需要将数据写入Excel文档,对于Python来说,这也是比较常见的操作。但是,单纯地将数据写入Excel文档显然是无法满足工作的需求的,因为很多情况下,我们还需要将数据进行处理,比如合并单元格、设置边框样式、设置对齐方式和设置列宽…

    python 2023年5月14日
    00
  • pandas中的数据去重处理的实现方法

    下面就为您详细讲解一下pandas中的数据去重处理的实现方法: 一、pandas中的数据去重方法 pandas中的数据去重方法主要有两个函数来实现,分别是drop_duplicates()和duplicated()。接下来我们将一一介绍这两个函数的使用方法。 1.1 duplicated() duplicated()函数可以帮助我们查看DataFrame或S…

    python 2023年5月14日
    00
  • Python中的pandas.isna()函数

    当我们在处理数据的时候,经常会遇到一些缺失值(NaN,None),这些缺失值会导致很多问题和错误,比如计算结果不准确,无法进行可视化,等等。而pandas库中的isna()函数就可以非常方便地判断一个数据是否为缺失值。 函数用法 pandas.isna(obj) 该函数的作用是判断数据是否为缺失值。 参数说明 obj:要判断的数据。 返回值 如果数据是缺失值…

    python-answer 2023年3月27日
    00
  • Python Pandas 对列/行进行选择,增加,删除操作

    下面我为你详细讲解Python Pandas对列/行进行选择、增加和删除操作的步骤。 选择操作 列选择 选择单列数据使用中括号 [] 即可,如下例所示: import pandas as pd df = pd.read_csv(‘example.csv’) # 选择 "name" 列数据 name = df[‘name’] print(n…

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