groupby和聚合功能给出了意外结果

时间:2019-02-22 09:56:53

标签: python-3.x group-by operators aggregate itertools

尊敬的堆栈溢出社区,

我建立了一个自定义的groupby函数,以便对字典中的键进行分组并通过求和进行汇总。该函数编写如下,

from itertools import groupby
from operator import itemgetter

def group_by_field(data, fields):
    groups = []
    agg_group = itemgetter(*[item for item in fields])
    sorted_data = sorted(data, key = agg_group)
    for key, group in groupby(sorted_data, agg_group):
        dictionary = dict(zip([item for item in fields], key))
        dictionary["items"] = sum(item["items"] for item in group)
        groups.append(dictionary)
    return groups

我的数据是字典或json文件,其读取方式如下,

with gzip.open('data.json', 'rb') as f:
    data = json.load(f) 

函数的第二个参数是以这种方式显示的变量元组,

('bnf_name',) 

('bnf_name', 'post_code',) 

该函数在两种情况下均能正常工作,但是当我仅提供一个变量时,它将减少该变量的名称。请查看所附图片以查看两种情况的结果。 results

我想知道为什么函数会以这种方式运行,并等待任何可以解决我的问题的建议。

0 个答案:

没有答案