Numpy pandas: 将多个类别合并到一个类别中

Numpy pandas: 将多个类别合并到一个类别中

在本文中,我们将介绍如何将多个类别组合到一个类别中,使用Numpy和Pandas。在现实生活中,这是一项常见操作。举个例子,我们可能想要将年龄组合成不同的年龄段:0-10岁,11-20岁,21-30岁等等。或者,我们可能想要将电视机的尺寸分成几个组,例如:低于32英寸,32-44英寸,45-56英寸,等等。

阅读更多:Numpy 教程

用Numpy将类别组合成一组

Numpy中的cut函数可以将一个数值型的流程分成几部分,并将其分成几组。例如,以下代码将按照指定的数值将数据划分成三个不同的组:

import numpy as np

bins = np.array([0, 10, 20, 30])
data = np.array([5, 18, 23, 7, 30])

result = np.digitize(data, bins)
print(result)
Python

输出结果为:

[1 2 3 1 3]
Python

上面代码中,我们用 bin 变量设置了截距,然后使用 digitize() 方法将数据传递给变量 result,并返回对应每条价值的索引位置。 因此,结果阵列中的值是:1 表示 값을5(第一个值)划分为bin[0](即,0到10),2 表示价值18(第二个值)在 bin[1] 中(即,11 到 20),3 表示第三个值23在 bin[2] 中(即 21 到 30个)。

用Pandas将类别组合成一组

当我们处理带标签列的大型数据集时,使用 Pandas 数据框架的 cut 函数更为方便。以下是示例代码,说明如何将age列拆分成10岁为一组:

import pandas as pd

df = pd.DataFrame({
   'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Ella', 'Frank'],
   'Age': [25, 32, 18, 47, 22, 19]
})

bins = [0, 10, 20, 30, 40, 50]
labels = ['0-9岁', '11-20岁', '21-30岁', '31-40岁', '41-50岁']

df['AgeGroup'] = pd.cut(df['Age'], bins=bins, labels=labels)
print(df)
Python

输出结果为:

      Name  Age AgeGroup
0    Alice   25   21-30
1      Bob   32   31-40
2  Charlie   18   11-20
3    David   47   41-50
4     Ella   22   21-30
5    Frank   19   11-20
Python

以上代码,bins列表中的值表示要用于将数据拆分成多个部分的值。 标签变量将在剖分后分配到相应的数据中。 请注意,输出 DataFrame 中的新 AgeGroup 标签列。

总结

在本文中,我们介绍了如何使用Numpy和Pandas将多个类别组合成一个类别。使用Numpy可以将数值型数据分为不同的部分,并将其分为多个组。使用Pandas可以更轻松地处理带标签列的大型数据集。在具有分类数据的 DataFrame 中,可以使用 cut 函数将数据进一步划分为组。通过以上方法,我们可以更好地处理数据,并且更方便地绘制出数据的直方图。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册