在PythonPandas中创建部分SAS PROC Summary替换

在PythonPandas中创建部分SAS PROC Summary替换,第1张

在Python / Pandas中创建部分SAS PROC Summary替换

好吧,这是一个可以解决两个问题的快捷方式(但对于加权均值仍然需要使用其他功能)。通常,它使用此处的技巧(贷记@DSM)来执行 *** 作以避开空的组

groupby(lamda x:True)
。如果在手段之类的东西上存在“权重”的扭曲,但据我所知没有,那将是很棒的。显然有是提到加权位数包这里基于numpy的,但我不知道这件事。伟大的项目顺便说一句!

(请注意,名称与您的名称基本相同,我只是在wmean_grouped和my_summary中添加了“ 2”,否则您可以使用相同的调用接口)

def wmean_grouped2 (group, var_name_in, var_name_weight):    d = group[var_name_in]    w = group[var_name_weight]    return (d * w).sum() / w.sum()FUNCS = { "mean"  : np.mean ,          "sum"   : np.sum ,          "count" : np.count_nonzero }def my_summary2 (        data ,        var_names_in ,        var_names_out ,        var_functions ,        var_name_weight = None ,        var_names_group = None ):    result = pd.Dataframe()    if var_names_group is None:        grouped = data.groupby (lambda x: True)    else:        grouped = data.groupby (var_names_group)    for var_name_in, var_name_out, var_function in  zip(var_names_in,var_names_out,var_functions):        if var_function == "wmean": func = lambda x : wmean_grouped2 (x, var_name_in, var_name_weight) result[var_name_out] = pd.Series(grouped.apply(func))        else: func = FUNCS[var_function] result[var_name_out] = grouped[var_name_in].apply(func)    return result


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5664514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存