获取序数变量的假人并自动更改列名?



我正在用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']

有一个名为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)

最新更新