def agg_count(df, group_field):
grouped = df.groupby(group_field, as_index=False).size()
#grouped.sort(ascending = False)
grouped = pd.DataFrame(grouped).reset_index()
grouped.columns = [group_field, 'Count']
return grouped
上面的函数,如果我用下面的一列调用它,则效果很好:
agg_count(app_snap1_extract, 'APP_STATUS_C')
如果我调用具有多列的函数会失败(我想自定义函数,以便我可以按N个列作为参数提供的列)
任何人都可以帮忙吗?
答案 0 :(得分:0)
在熊猫中为groupby
传递多列时,您需要将其作为list
传递。
grouped = df.groupby(['a','b'])
因此,请确保group_field
是上面的列表。可以。
def agg_count(df, group_field):
grouped = df.groupby(group_field, as_index=False).size()
#grouped.sort(ascending = False)
grouped = pd.DataFrame(grouped).reset_index()
grouped.columns = group_field + ['Count']
return grouped