特征工程 python 批量生成变量名

features = []

  diff_windowns = [1,3,6,12]
  groups = ['sum','mean','std','max','min','count']

for d in diff_windowns:
    exec("""last_{}_month = df[df['diff_days']<={}].groupby('ACCOUNT')""".format(d,d))
    #last_3_month = df[df['diff_days']<=d].groupby('ACCOUNT')
    exec("""last_{}_month_gp = groupby_feature(last_{}_month)""".format(d,d))
    #features.append()
    for i,g in enumerate(groups):
        exec("""last_{}_month_{} = last_{}_month_gp[{}]""".format(d,g,d,i))
        #根据不同特征构造重命名列名
        exec("""last_{}_month_{}.columns = [c + '_last_{}_month_{}' for c in last_{}_month_{}.columns]""".format(d,g,d,g,d,g))

 

#jupyter 里面查看生成的变量
使用命令 %who_ls

[...
...
...
 'last_12_month',
 'last_12_month_count',
 'last_12_month_gp',
 'last_12_month_max',
 'last_12_month_mean',
 'last_12_month_min',
 'last_12_month_std',
 'last_12_month_sum',
 'last_1_month',
 'last_1_month_count',
 'last_1_month_gp',
 'last_1_month_max',
 'last_1_month_mean',
 'last_1_month_min',
 'last_1_month_std',
 'last_1_month_sum',
 'last_3_month',
 'last_3_month_count',
 'last_3_month_gp',
 'last_3_month_max',
 'last_3_month_mean',
 'last_3_month_min',
 'last_3_month_std',
 'last_3_month_sum',
 'last_6_month',
 'last_6_month_count',
 'last_6_month_gp',
 'last_6_month_max',
 'last_6_month_mean',
 'last_6_month_min',
 'last_6_month_std',
 'last_6_month_sum',
....]

 

posted @ 2021-12-10 11:42  cup_leo  阅读(454)  评论(0编辑  收藏  举报