Group by multiple keys and summarize/average values of a list of dictionaries

后端 未结 7 1260
梦谈多话
梦谈多话 2020-11-30 01:03

What is the most pythonic way to group by multiple keys and summarize/average values of a list of dictionaries in Python please? Say I have a list of dictionaries as below:<

7条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-30 01:16

    Inspired by Eelco Hoogendoorn's answer. Here is another way to resolve this using Pandas package. The code is more readable.

    import numpy as np
    import pandas as pd
    
    def sum_by_cusip_and_dept(data):
        df = pd.DataFrame(data)
        grouped = df.groupby(['sku', 'dept'])    
        sum = grouped.sum()
        return [{'sku': r[0], 'dept': r[1], 'qty': kv.to_dict().get('qty')} for r, kv in sum.iterrows()]     
    

提交回复
热议问题