Python 如何将数据帧中Categorica类型的所有列编码为伪变量
我有一个包含大量分类列的Pandas数据框架,我希望将其传递给scikit学习。由于scikit learn只接受数组作为参数,所以我需要将所有分类列转换为伪变量。例如,我有一个包含类别“Christian”、“Muslim”和“Hindu”的宗教列,这些类别应转换为三个虚拟变量,并根据这些值设置为0或1 我找到的最好的解决方案是将数据帧分成分类变量和非分类变量,然后在所有分类变量上使用pandas.get_假人,然后重新组合Python 如何将数据帧中Categorica类型的所有列编码为伪变量,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,我有一个包含大量分类列的Pandas数据框架,我希望将其传递给scikit学习。由于scikit learn只接受数组作为参数,所以我需要将所有分类列转换为伪变量。例如,我有一个包含类别“Christian”、“Muslim”和“Hindu”的宗教列,这些类别应转换为三个虚拟变量,并根据这些值设置为0或1 我找到的最好的解决方案是将数据帧分成分类变量和非分类变量,然后在所有分类变量上使用pandas.get_假人,然后重新组合 有更快的方法吗?您可以获取数据帧(df)并将其与要转换的列列表一起传
有更快的方法吗?您可以获取数据帧(df)并将其与要转换的列列表一起传递给get_dummies()调用 假设您有一个带有一串列的df,并且您希望仅从“宗教”列创建虚拟变量 以下是df的外观:
Age Name Religion State
0 28 Adam Christian CA
1 25 Brad Hindu CA
2 35 Charlie Muslim AZ
3 24 David Hindu NV
4 39 Eric Christian OR
要创建“宗教”列的虚拟变量,请执行以下操作:
输出:
Age Name State Religion_Christian Religion_Hindu Religion_Muslim
0 28 Adam CA 1 0 0
1 25 Brad CA 0 1 0
2 35 Charlie AZ 0 0 1
3 24 David NV 0 1 0
4 39 Eric OR 1 0 0
df = pd.get_dummies(df, columns=['Religion'])
Age Name State Religion_Christian Religion_Hindu Religion_Muslim
0 28 Adam CA 1 0 0
1 25 Brad CA 0 1 0
2 35 Charlie AZ 0 0 1
3 24 David NV 0 1 0
4 39 Eric OR 1 0 0