在python中为groupby动态选择数据帧列

时间:2018-05-18 06:43:53

标签: python pandas

我有一个名为Incoming_Tags的pandas数据帧 enter image description here

我可以通过提及列名作为groupby的输入来对数据框执行groupby

示例:

Incoming_Tags.groupby([ 'Domain','Tag_Name', 'Tag_hierarchy', 'html_attributes'])

我想动态选择列来执行groupby

动态地表示名称。而不是每次在groupby中提及列名称。我定义了一个函数group_by,它执行以下操作:

def group_by(df,myList= [],*args): 
       Incoming_tag_groupby = df.groupby(myList).agg({'char_cnt': np.mean,'line_cnt':np.mean,'digit_cnt':np.mean,'sp_chr_cnt':np.mean,'word_cnt':np.mean}) 
       return Incoming_tag_groupby

1 个答案:

答案 0 :(得分:0)

如果要汇总所有数字列,则default排除非数字:

def group_by(df,myList= [],*args):
    return df.groupby(myList).mean()

或者使用c列列表来指定聚合列:

def group_by(df,myList= [],*args): 
    c = ['char_cnt','line_cnt','digit_cnt','sp_chr_cnt', 'word_cnt']
    return df.groupby(myList)[c].mean()