【Python】把一个数组数据进行按照类别标签的方式进行离散化处理

目录

把一个数组数据进行按照类别标签的方式进行离散化处理


把一个数组数据进行按照类别标签的方式进行离散化处理

离散化是将连续型数据转换为有限个离散型数据的过程。在 Python 中,可以使用 pandas.cut() 函数将一个数组的数据按照类别标签的方式进行离散化处理。具体方法如下:

import pandas as pd

# 创建原始数据数组
data = [20, 25, 15, 30, 22, 17, 19, 24]

# 定义类别标签
labels = ['低', '中', '高']

# 将数据进行离散化处理
bins = pd.cut(data, bins=[0, 18, 23, 100], labels=labels, right=False)

print(bins)  # 输出:
# [中, 中, 低, 高, 中, 低, 低, 中]
# Categories (3, object): [低 < 中 < 高]

在这个示例中,我们首先创建了一个原始数据数组 data,其中包含一些连续型数据。然后,定义了三个对应的类别标签:'低'、'中'、'高'。最后,使用 pandas.cut() 函数将数据进行离散化处理,并将处理得到的结果存储在变量 bins 中。在函数调用中,我们将 data 数组作为第一个参数传递给该函数,同时指定了切分的区间和对应的类别标签。这里,我们将数据分为了三个区间([0, 18)、[18, 23)、[23, 100)),并用 '低'、'中'、'高' 来表示相应的类别。

需要注意的是,pandas.cut() 函数处理后会返回一个 Categorical 类型的 Series 对象,其中每个元素被替换为对应的类别标签。如果需要将其转换为普通的数组或列表,可以使用 .values.tolist() 方法:

# 将离散化处理后的数据转换为数组
bins_array = bins.values

# 将离散化处理后的数据转换为列表
bins_list = bins.tolist()

要统计每个类别中元素的个数,可以使用 pandas.value_counts() 函数。具体方法如下:

count = pd.value_counts(bins)

print(count)  # 输出:
# 中    3
# 低    3
# 高    2
# dtype: int64

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/130887702
今日推荐