获取序数变量的虚拟变量并自动更改列名?

时间:2018-06-19 13:02:58

标签: python pandas

我正在python中做这些,但是我认为也许有一种更快的方法来做到这一点。

对序数变量执行pd.get_dummies(dataset[a column name])之后,我正在手动检查列数,并在每个新列名的末尾添加1,2,3,..。

在python中,我们是否可以编写更有效的代码,以便python获取序数变量的虚拟变量,并按顺序附加数字来重命名列名称? (即,如果我给g,它将列重命名为g1,g2,g3列)

dummie_g = pd.get_dummies(d["gen"])
dummie_g.describe()
dummie_g.columns = ['g1','g2','g3']

dummie_e=pd.get_dummies(d["educ"])
dummie_e.describe()
dummie_e.columns = ['e1','e2','e3','e4']

dummie_a=pd.get_dummies(d["type"])
dummie_a.describe()
dummie_a.columns=['a1','a2','a3','a4','a5','a6']

dummie_n=pd.get_dummies(d["name"])
dummie_n.describe()
dummie_n.columns=['n1','n2']

dummie_dpt=pd.get_dummies(d["dpt"])
dummie_dpt.describe()
dummie_dpt.columns=['h1','h2','h3','h4','h5','h6','h7','h8','h9','h10','h11','h12','h13','h14','h15']

1 个答案:

答案 0 :(得分:3)

对于prefix,有一个名为get_dummies的参数,用于在获取虚拟变量后为列添加前缀。您可以像

那样使用它
pd.get_dummies(d["gen"],prefix='g')

您的代码的改进版本可能是:

dfs = {}
# use dicts over repeating n varaibles. 
for i,j in zip(["gen","educ","type","name","dpt"],["g","e","a","n","h"]):
    dfs['dummies_'+j] = pd.get_dummies(d[i],prefix=j)