我有一本这样的字典:
[
{'name': 'a', 'age': '20', 'value': '10'},
{'name': 'a', 'age': '30', 'value': '15'},
{'name': 'a', 'age': '40', 'value': '25'},
{'name': 'b', 'age': '20', 'value': '11'},
{'name': 'b', 'age': '30', 'value': '12'},
{'name': 'b', 'age': '40', 'value': '13'}
]
字符串
现在,我想添加一个新的键,该键包含相同名称的所有值的总和,如下所示:
[
{'name': 'a', 'age': '20', 'value': '10', 'sum': '50'},
{'name': 'a', 'age': '30', 'value': '15', 'sum': '50'},
{'name': 'a', 'age': '40', 'value': '25', 'sum': '50'},
{'name': 'b', 'age': '20', 'value': '11', 'sum': '36'},
{'name': 'b', 'age': '30', 'value': '12', 'sum': '36'},
{'name': 'b', 'age': '40', 'value': '13', 'sum': '36'}
]
型
我已经在使用Pandas进行分组和聚合。Pandas也可以这样做吗?还是有标准的Python变体?
6条答案
按热度按时间ha5z0ras1#
下面的代码使用一个新的“sum”键更新列表中的每个字典,该键是每个字典中具有相同“name”键的值的总和。
字符串
输出量:
型
cl25kdpy2#
这个就行了。
字符串
的数据
sqougxex3#
是的,你可以使用Pandas来实现这一点。下面是一个示例代码:
字符串
这段代码从字典中创建一个Pandas DataFrame,将'value'列转换为数值,按'name'对DataFrame进行分组,计算每个组的'value'之和,并为每个'name'创建一个新的列'sum'。最后,它将“sum”列转换为字符串值,并将DataFrame转换回字典列表。
输出应该是一个字典的列表,每个“名称”都添加了“sum”列。
lxkprmvk4#
另一个解决方案,没有pandas,使用纯Python:
字符串
图纸:
型
mrphzbgm5#
若要在字典列表中创建一个新的键,该键是另一个键的总和,您可以遍历列表中的每个字典并计算所需键的总和。然后,向每个字典中添加一个新的键和计算的总和。下面是一个Python示例,假设你想添加一个名为'sum_key'的新键,它包含'key1'和'key2'的总和:
字符串
输出将为:
型
现在列表中的每个字典都有一个新的键“sum_key”,其中包含“key1”和“key2”的总和。
hmtdttj46#
另一个没有pandas但有defaultdict的选项:
字符串
。或者没有违约判决。。
型