如何在Python中把分类数据转换成二进制数据
分类数据是与分类变量相对应的数据。分类变量是一个采取固定的、有限的可能值集的变量。
例如,性别,血型,一个人是否有乡村住宅,等等。
分类数据的特点:
- 这主要用于统计学。
- 在这种类型的数据上,不可能有加法、减法等数字操作。
- 分类数据的所有值都是分类的。
- 它通常使用阵列数据结构。
示例 :
分类数据
二进制数据是一种使用两种可能状态或价值的数据,即0和1。二进制数据主要用于各个领域,如在计算机科学中,我们用它来命名比特(二进制数字),在数字电子和数学中,我们用它来命名真实值,以及我们在统计中使用二进制变量。
特点:
- 0和1)也被称为(真和假)、(成功和失败)、(是和不是)等。
- 二进制数据是一种离散数据,也用于统计学。
示例 :
将分类数据转换为二进制数据
我们的任务是将分类数据转换为二进制数据,如下图所示,用python。
分步实现:
步骤1) 为了将分类数据转换为二进制数据,我们使用Pandas框架中的一些函数。这就是为什么Pandas框架被导入
# import required module
import pandas as pd
Step2)之后,创建一个列表并输入数据,如下所示。
# import required modules
import pandas as pd
# assign data
data = [["Jagroop", "Male"], ["Praveen", "Male"],
["Harjot", "Female"], ["Pooja", "Female"],
["Mohit", "Male"]]
步骤3)之后,使用pd.DataFrame()创建数据框架,这里我们添加额外的一行,即print(data_frame),以显示分类数据的输出,如下所示。
# import required modules
import pandas as pd
# assign data
data = [["Jagroop", "Male"], ["Praveen", "Male"],
["Harjot", "Female"], ["Pooja", "Female"],
["Mohit", "Male"]]
# display categorical output
data_frame = pd.DataFrame(data, columns=["Name", "Gender"])
print(data_frame)
输出:
Categorical Data
第四步) 到第三步为止,我们得到了分类数据,现在我们要把它转换成二进制数据。因此,我们必须使用Pandas的内置函数,即get_dummies(),如图所示。
这里我们只对性别列使用get_dummies(),因为这里我们只想把性别列的分类数据转换成二进制数据。
# import required modules
import pandas as pd
# assign data
data = [["Jagroop", "Male"], ["Praveen", "Male"],
["Harjot", "Female"], ["Pooja", "Female"],
["Mohit", "Male"]]
# display categorical output
data_frame = pd.DataFrame(data, columns=["Name", "Gender"])
print(data_frame)
# converting to binary data
df_one = pd.get_dummies(data_frame["Gender"])
print(df_one)
第4步的输出
这里我们只得到性别栏的二进制代码输出。在这里,我们有两个选择来明智地使用它。
1.将上述输出添加到数据框架中 -> 移除性别栏 -> 移除女性栏(如果我们想要男性=1,女性=0) -> 重命名男性=性别 -> 显示转换输出。
2.将上述输出添加到数据框架中 -> 移除性别栏 -> 移除男性栏(如果我们想要男性=0,女性=1) -> 重命名女性=性别 -> 显示转换的输出。
在下面的程序中,我们使用了第一个选项,并相应地写下代码,如下所示。
# import required modules
import pandas as pd
# assign data
data = [["Jagroop", "Male"], ["Praveen", "Male"],
["Harjot", "Female"], ["Pooja", "Female"],
["Mohit", "Male"]]
# display categorical output
data_frame = pd.DataFrame(data, columns=["Name", "Gender"])
# print(data_frame)
# converting to binary data
df_one = pd.get_dummies(data_frame["Gender"])
# print(df_one)
# display result
df_two = pd.concat((df_one, data_frame), axis=1)
df_two = df_two.drop(["Gender"], axis=1)
df_two = df_two.drop(["Male"], axis=1)
result = df_two.rename(columns={"Female": "Gender"})
print(result)
输出:
以下是基于上述方法的完整方案:
# Pandas is imported in order to use various inbuilt
# Functions available in Pandas framework
import pandas as pd
# Data is initialized here
data = [["Jagroop", "Male"], ["Parveen", "Male"],
["Harjot", "Female"], ["Pooja", "Female"],
["Mohit", "Male"]]
# Data frame is created under column name Name and Gender
data_frame = pd.DataFrame(data, columns=["Name", "Gender"])
# Data of Gender is converted into Binary Data
df_one = pd.get_dummies(data_frame["Gender"])
# Binary Data is Concatenated into Dataframe
df_two = pd.concat((df_one, data_frame), axis=1)
# Gendercolumn is dropped
df_two = df_two.drop(["Gender"], axis=1)
# We want Male =0 and Female =1 So we drop Male column here
df_two = df_two.drop(["Male"], axis=1)
# Rename the Column
result = df_two.rename(columns={"Female": "Gender"})
# Print the Result
print(result)
输出: