如何在 Python 中将分类数据转换为二进制数据?


分类数据,也称为名义数据,是一种将数据划分为离散类别或组的数据类型。这些类别没有内在的顺序或数值,通常用文字、标签或符号表示。分类数据通常用于描述对象、人员或事件的特征或属性,并在社会科学、市场营销和医学研究等各个领域中出现。

在 Python 中,分类数据可以使用各种数据结构来表示,例如列表、元组、字典和数组。Python 中最常用的分类数据结构是 Pandas DataFrame,它是一个二维表格式数据结构,可以存储和处理大量数据。

以下是一个说明 Python 中分类数据的简单示例。

假设您有一个包含人们拥有的车辆类型信息的数据集。该数据集包含以下分类变量:

  • 车辆类型 - 汽车、卡车、SUV、货车、摩托车

  • 燃料类型 - 汽油、柴油、电、混合动力

  • 颜色 - 红色、蓝色、绿色、黑色、白色

示例

您可以使用 Pandas DataFrame 在 Python 中表示此数据集,如下所示。

import pandas as pd

data = {'Vehicle Type': ['Car', 'Truck', 'SUV', 'Van', 'Motorcycle'],
   'Fuel Type': ['Gasoline', 'Diesel', 'Electric', 'Hybrid', 'Gasoline'],
   'Color': ['Red', 'Blue', 'Green', 'Black', 'White']}
df = pd.DataFrame(data)
print(df)

要运行以上代码,我们首先需要在我们的机器上安装 Pandas 库,为此我们可以使用以下命令:

pip3 install pandas

Pandas 成功安装后,我们可以运行以下命令:

python3 main.py

输出

以上命令的输出如下所示。

  Vehicle Type Fuel Type  Color
0          Car  Gasoline    Red
1        Truck    Diesel   Blue
2          SUV  Electric  Green
3          Van    Hybrid  Black
4   Motorcycle  Gasoline  White

如您所见,分类变量在 DataFrame 中表示为列,每个类别在相应的列中表示为字符串值。您可以使用各种 Pandas 函数和方法来处理和分析这些数据,例如groupby、count、value_counts和 crosstab。这些函数可以帮助您总结和可视化类别的分布和关系,从而提供对数据集的有价值的见解。

现在我们对分类数据有了一点了解,让我们看看它们有哪些特征。

分类数据的特征

以下是提到的分类数据的一些特征。

  • 分类数据具有有限数量的类别。

  • 这些类别没有内在的顺序或等级。

  • 分类数据可以在名义或顺序尺度上测量。

  • 分类数据通常使用计数或频率分布来汇总。

  • 与数值数据相比,分类数据的统计分析有限。

将分类数据转换为二进制数据

将分类数据转换为二进制数据涉及将分类变量转换为二进制(0 或 1)值,以便用于分析或建模目的。这种转换很有用,因为许多机器学习算法和统计方法需要数值输入,而不是分类输入。

二进制编码是一种常见的方法,它将分类变量中的每个唯一类别转换为单独的二进制列,其中值 1 表示类别的存在,0 表示类别的不存在。

使用 Pandas 的 get_dummies() 函数或其他类似库,可以在 Python 中轻松实现此技术。二进制编码有助于提高预测模型的准确性、减少数据存储需求并简化数据分析。

示例

考虑以下代码,我们将使用 Pandas 将分类数据转换为二进制数据。

import pandas as pd

# create a sample DataFrame with categorical data
data = {'Gender': ['Male', 'Female', 'Male', 'Female'],
   'City': ['New York', 'Chicago', 'Chicago', 'Los Angeles'],
   'Marital Status': ['Single', 'Married', 'Single', 'Divorced']}
df = pd.DataFrame(data)

# use get_dummies() to encode categorical variables as binary values
encoded_df = pd.get_dummies(df)

print(encoded_df)

解释

  • 第一行将 Pandas 库导入为 pd。

  • 在 data 字典中创建了一个包含分类数据的示例 DataFrame。DataFrame 包含三个分类变量:性别、城市和婚姻状况。

  • pd.DataFrame() 函数用于从 data 字典创建 Pandas DataFrame。此 DataFrame 分配给变量 df。

  • 在 df DataFrame 上调用 pd.get_dummies() 函数以将分类变量转换为二进制值。此函数创建一个新的 DataFrame,其中包含分类变量中每个唯一类别的二进制编码。

  • 将生成的二进制编码 DataFrame 分配给变量 encoded_df。

  • 最后,使用 print() 函数显示生成的二进制编码 DataFrame。

要运行以上代码,我们需要运行以下命令。

python3 main.py

输出

以上命令的输出如下所示。

   Gender_Female  Gender_Male  ...  Marital Status_Married  Marital Status_Single
0              0            1  ...                       0                      1
1              1            0  ...                       1                      0
2              0            1  ...                       0                      1
3              1            0  ...                       0                      0

[4 rows x 8 columns]

结论

将分类数据转换为二进制数据是机器学习和统计分析中数据预处理的重要步骤。在本教程中,我们学习了如何探索什么是分类数据以及如何使用 Pandas 库将其转换为二进制数据。

更新于: 2023年4月18日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始
广告