代码之家  ›  专栏  ›  技术社区  ›  glor

为序数变量获取dummies并自动更改列名?

  •  0
  • glor  · 技术社区  · 7 年前

    我在用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 回复  |  直到 7 年前
        1
  •  3
  •   Bharath M Shetty    7 年前

    有一个参数叫做 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)