Pandas 将数据框中的分类数据转换
在本文中,我们将介绍如何使用Pandas将数据框(DataFrame)中的分类(categorical)数据转换。分类数据通常被储存在文本格式中,这可以给我们带来丰富的信息和价值。然而,这样的数据有劣势,使用分类数据的许多方法都有很多限制,需要更多的计算资源,数据的可读性也更低下。
那么我们怎样将分类数据转换成机器可以理解的数字数据呢?Pandas提供了一系列的方法来做这件事。在本文中,我们将介绍这些方法并通过示例来说明。
阅读更多:Pandas 教程
将分类数据转换成数字数据
首先,我们需要将分类数据能够被机器处理的数字数据。对于Pandas,我们可以使用factorize()方法将分类数据转换成数字数据。该方法返回两个值,第一个是一个由数字组成的数组(NumPy),其代表每个分类的唯一数字,第二个是分类的标签(字符串)。
输出:
我们可以看到,’A’和’B’列中的分类数据已经被转换成数字数据了。同时我们也得到了原始分类的标签。
使用get_dummies()方法将分类数据转换成哑变量
我们也可以使用get_dummies()方法将分类数据转换成哑变量。哑变量也是数字数据,但它们只能取0或1,用0表达不符合特征,用1表达符合特征。
输出:
我们可以看到,’A’列和’B’列中的分类数据已经被转换成哑变量,各值只有0或1。
使用Categorical数据类型来优化数据处理
在转换分类数据之前,我们可以使用Categorical数据类型来优化数据处理。Pandas通过为分类数据指定Categorical数据类型来使得一些列中的值在操作时更高效。
以下是一些优化后的代码:
输出:
我们可以看到,将分类数据转换为Categorical数据类型之后,在操作时更加高效。通过cat属性(例如,df[‘A’].cat.categories)可以得到分类的标签。
使用Categorical数据类型还有其他好处。例如,按分类排序时的操作速度更快,所消耗的内存更少等。
总结
在本文中,我们介绍了如何使用Pandas将分类数据转换成数字数据。我们讨论了两种方法:使用factorize()方法和使用get_dummies()方法。我们还介绍了如何使用Categorical数据类型在数据处理中更有效率地处理分类数据。