我有一个列表
a=[{'name': 'xyz','inv_name':'asd','quant':300,'amt':20000, 'current':30000},{'name': 'xyz','inv_name':'asd','quant':200,'amt':2000,'current':3000}]
我使用itertools groupby获取此列表。
我想在为同名和inv_name添加quant,amt和current字段后形成一个列表,并创建一个类似于以下列表的列表:[{'name':'xyz','inv_name':'asd','quant':500,'amt':22000,'current':33000}
有关如何实现这一目标的任何建议吗?
答案 0 :(得分:0)
如果您对使用第三方库感到满意,pandas
会接受字典列表:
import pandas as pd
a=[{'name': 'xyz','inv_name':'asd','quant':300,'amt':20000, 'current':30000},
{'name': 'xyz','inv_name':'asd','quant':200,'amt':2000,'current':3000}]
df = pd.DataFrame(a)
res = df.groupby(['name', 'inv_name'], as_index=False).sum().to_dict(orient='records')
# [{'amt': 22000,
# 'current': 33000,
# 'inv_name': 'asd',
# 'name': 'xyz',
# 'quant': 500}]