透视表之后得到multiindex的列拉平变成一层

例如我们做透视表时,表头可能是多层的,得到了multiindex的列,我们需要将这些列拉平成一层,如下:

table_cnt = pd.pivot_table(danbao_jigou_erji, values='creditlimitamount', index=['reportno'],
                    columns=['type','finance_type','loantype_group'],\
            aggfunc = {'creditlimitamount' : 'count'}, 
            fill_value = 0)

得到的列名如下:

MultiIndex([( '个人消费贷款', '商业/外资银行', '消费_信用型'),
( '个人消费贷款', '商业/外资银行', '消费_大额担保')]names=['type', 'finance_type', 'loantype_group'])
我们需要得到'个人消费贷款_商业/外资银行_消费_信用型',或者是'个人消费贷款_商业/外资银行_消费_信用型_cnt',则

[('_'.join(col)) for col in table_cnt.columns.values]
'''
['个人消费贷款_商业/外资银行_消费_信用型',
 '个人消费贷款_商业/外资银行_消费_大额担保']
'''
[('_'.join(col))+'_cnt' for col in table_cnt.columns.values]

'''
['个人消费贷款_商业/外资银行_消费_信用型_cnt',
 '个人消费贷款_商业/外资银行_消费_大额担保_cnt']
'''

 

posted on 2020-11-13 14:26  小小喽啰  阅读(447)  评论(0编辑  收藏  举报