如何使用 Pandas 在 Python 中创建虚拟变量?2025 年 3 月 4 日 | 阅读 4 分钟 在数据分析,尤其是在机器学习中,通常会用到类别数据,它可以取有限的几个类别(例如“男性”或“女性”)。然而,许多算法无法直接处理这些类别,必须将它们转换为数值格式。这时就会用到虚拟变量。虚拟变量是并行(0 或 1)的变量,用于表示数据的类别。 在 Python 中使用 Pandas 创建虚拟变量Pandas 是一个强大的 Python 数据处理工具包,它通过 get_dummies() 函数提供了一种简单的方式来创建虚拟变量。 步骤 1:导入 Pandas 库首先,请确保您已安装 Pandas 库。如果尚未安装,您可以使用 pip 进行安装。 代码 步骤 2:创建 DataFrame让我们创建一个包含一些类别数据的简单 DataFrame。 代码 输出 GenderSamples CountrySamples 0 M India 1 F USA 2 F China 3 M Bangladesh 4 M Pakistan 步骤 3:使用 get_dummies() 创建虚拟变量要将类别列转换为虚拟变量,请使用 get_dummies() 函数。 代码 输出 GenderSamples_F GenderSamples_M CountrySamples_ Pakistan CountrySamples_Bangladesh 0 False True False False \ 1 True False False False 2 True False False False 3 False True False True 4 False True True False CountrySamples_China CountrySamples_India CountrySamples_USA 0 False True False 1 False False True 2 True False False 3 False False False 4 False False False 您提供的代码为 DataFrame 的类别列 GenderSamples 和 CountrySamples 生成了虚拟变量。以下是分步说明。
创建虚拟变量的高级概念1. 处理多个类别列如果您的 DataFrame 包含多个类别列,您可以使用 get_dummies() 一次性转换它们。 代码 输出 GenderSamples CountrySamples Relationship Status_ex_ 0 M India Committed 1 F USA Single 2 F China Committed 3 M Bangladesh Committed 4 M Pakistan Single 代码 输出 GenderSamples_F GenderSamples_M CountrySamples_ Pakistan CountrySamples_Bangladesh 0 False True False False \ 1 True False False False 2 True False False False 3 False True False True 4 False True True False CountrySamples_China CountrySamples_India CountrySamples_USA 0 False True False \ 1 False False True 2 True False False 3 False False False 4 False False False Relationship Status_ex__Committed Relationship Status_ex__Single 0 True False 1 False True 2 True False 3 True False 4 False True 2. 为虚拟变量列添加前缀为避免混淆,尤其是在处理大型数据集或多列时,您可以使用 prefix 参数为虚拟变量名称添加前缀。 代码 输出 GenderSamples_F GenderSamples_M CountrySamples_ Pakistan CountrySamples_Bangladesh 0 False True False False \ 1 True False False False 2 True False False False 3 False True False True 4 False True True False CountrySamples_China CountrySamples_India CountrySamples_USA 0 False True False \ 1 False False True 2 True False False 3 False False False 4 False False False Status_ex__Committed Status_ex__Single 0 True False 1 False True 2 True False 3 True False 4 False True 这通常非常有用,尤其是在原始列名相似的情况下,可以使虚拟变量更容易辨认。 3. 处理缺失数据如果您的数据集中包含类别列中的缺失值 (NaN),get_dummies() 会将其视为一个单独的类别。但是,您可能需要在创建虚拟变量之前处理缺失数据,例如用占位符值填充它们。 代码 输出 GenderSamples_F GenderSamples_M GenderSamples_Unknown CountrySamples_ Pakistan 0 False True False False \ 1 True False False False 2 False False True False 3 False True False False 4 False True False True CountrySamples_Bangladesh CountrySamples_China CountrySamples_India 0 False False True \ 1 False False False 2 False True False 3 True False False 4 False False False CountrySamples_Unknown 0 False 1 True 2 False 3 False 4 False 创建虚拟变量是为机器学习模型准备类别数据的重要步骤。Pandas 可以轻松地将类别数据转换为系统上有用的格式。理解并应用 get_dummies() 函数提供的多种选项,可以使您根据特定的数据和建模需求定制虚拟变量的生成。 对虚拟变量的这种全面理解使您能够有效地管理复杂的数据集,确保您的机器学习模型能够使用准备好的数据获得最佳性能。 |
我们请求您订阅我们的新闻通讯以获取最新更新。