【问题标题】:How to get the aggregated sum group by from dictionary如何从字典中获取聚合总和组
【发布时间】:2020-09-20 08:50:57
【问题描述】:

输入字典如下,输出应该是项目类型的聚合总和 输入:

[{'item': 'item1', 'amount': 400},
 {'item': 'item2', 'amount': 300},
 {'item': 'item1', 'amount': 750}]

输出:

{'item1': 1150,
 'item2': 300}

【问题讨论】:

  • 看起来您想创建一个字典,其键是项目名称,其值是该项目的金额之和。

标签: python dictionary


【解决方案1】:

这应该可以完成工作:

sample_input = [{'item': 'item1', 'amount': 400}, {'item': 'item2', 'amount': 300}, {'item': 'item1', 'amount': 750}]
output = {}
for row in sample_input:
    if row['item'] in output:
         output[row['item']] += row['amount']
    else:
         output[row['item']] = row['amount']

这会产生所需的输出:

output = {'item1': 1150, 'item2': 300}

【讨论】:

    【解决方案2】:

    使用熊猫的解决方案:

    import pandas as pd
    
    data = [{'item': 'item1', 'amount': 400},
     {'item': 'item2', 'amount': 300},
     {'item': 'item1', 'amount': 750}]
    
    pd.DataFrame(data).groupby(['item']).agg(sum)['amount'].to_dict()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 2020-05-01
      • 2021-03-14
      • 2020-03-09
      相关资源
      最近更新 更多