【发布时间】:2019-04-04 15:51:22
【问题描述】:
在 Pandas 数据框中一次性编码分类特征的最佳/最 Pythonic 方法是什么,同时保留从中提取类别(新列名)的列的原始顺序?
例如,如果我的数据框 (df0) 中有三列:["Col_continuous"、"Col_categorical"、"Labels"],并且我使用
df1hot = pd.get_dummies(df0, columns = ["Col_categorical"])
新数据框的“标签”列之后显示了新创建的列。我想要“Col_continuous”和“Labels”之间的新列。
为了稳健性,我希望在处理具有在其余列中任意排序的分类列的数据帧时保留顺序例如,对于 ["Cont1", "Cat1", "Cont2", "Cont3", "Cat2 ", "Labels"],我希望由 "Cat1" 产生的新列位于 "Cont1" 和 "Cont2" 之间。假设我已经有一个变量,比如 categoricalCols,它是分类特征名称的列表。
编辑 1:感谢 Juan C 的评论,将 df1hot = pd.get_dummies(df0, columns = ["Col_continuous"]) 更改为 df1hot = pd.get_dummies(df0, columns = ["Col_categorical"])。
编辑 2:添加以“为了稳健性,...”开头的段落
【问题讨论】:
-
我猜你的意思是
df1hot = pd.get_dummies(df0, columns = ["Col_categorical"])而不是df1hot = pd.get_dummies(df0, columns = ["Col_continuous"]),对吧? -
是的,我就是这个意思。谢谢!
标签: python pandas one-hot-encoding