小编Kyl*_*ost的帖子

在Python中分组并汇总字典列表的值

我正在尝试以优雅的方式编写一个函数,它将对字典列表进行分组并聚合(求和)like-keys的值.

例:

my_dataset = [  
    {
        'date': datetime.date(2013, 1, 1),
        'id': 99,
        'value1': 10,
        'value2': 10
    },
    {
        'date': datetime.date(2013, 1, 1),
        'id': 98,
        'value1': 10,
        'value2': 10
    },
    {
        'date': datetime.date(2013, 1, 2),
        'id' 99,
        'value1': 10,
        'value2': 10
    }
]

group_and_sum_dataset(my_dataset, 'date', ['value1', 'value2'])

"""
Should return:
[
    {
        'date': datetime.date(2013, 1, 1),
        'value1': 20,
        'value2': 20
    },
    {
        'date': datetime.date(2013, 1, 2),
        'value1': 10,
        'value2': 10
    }
]
"""
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用itertools为groupby和总结每个like-key值对,但我在这里遗漏了一些东西.这是我的功能目前的样子:

def group_and_sum_dataset(dataset, group_by_key, sum_value_keys):
    keyfunc = operator.itemgetter(group_by_key) …
Run Code Online (Sandbox Code Playgroud)

python dictionary python-itertools

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

dictionary ×1

python ×1

python-itertools ×1