gpt4 book ai didi

Python,从字典数组中收集数据

转载 作者:行者123 更新时间:2023-11-28 22:00:54 25 4
gpt4 key购买 nike

我是 Python 的新手,我从数据库中获得了这个结构

data=[
{'Value': '0.2', 'id': 1},
{'Value': '1.2', 'id': 1},
{'Value': '33.34', 'id': 2},
{'Value': '44.3', 'id': 3},
{'Value': '33.23', 'id': 3},
{'Value': '21.1', 'id': 4},
{'Value': '5.33', 'id': 4},
{'Value': '33.3', 'id': 5},
{'Value': '12.2', 'id': 5},
{'Value': '1.22', 'id': 5},
{'Value': '1.23', 'id': 6}
]

我知道我可以通过以下方式获取记录的 ID:

data[i]['id']

但我需要在适当的数据结构中按 ID 收集,以便获得每个 ID 的平均值。

什么是更好的选择?

我正在考虑为每个 ID 集构建一个新的字典,但 ID 的数量可能会增加,而且我不知道如何解决这个问题。如果有人能给我一些想法,我将不胜感激。

最佳答案

假设您的数据按显示在 data 变量中的 ID 排序,您可以尝试使用 itertools.groupby,它可以指示按 分组编号。然后,您可以创建一个新字典,其中的键等于 id 数字,值等于 means:

In [1]: from itertools import groupby

In [2]: data=[
...: {'Value': '0.2', 'id': 1},
...: {'Value': '1.2', 'id': 1},
...: {'Value': '33.34', 'id': 2},
...: {'Value': '44.3', 'id': 3},
...: {'Value': '33.23', 'id': 3},
...: {'Value': '21.1', 'id': 4},
...: {'Value': '5.33', 'id': 4},
...: {'Value': '33.3', 'id': 5},
...: {'Value': '12.2', 'id': 5},
...: {'Value': '1.22', 'id': 5},
...: {'Value': '1.23', 'id': 6}
...: ]

In [3]: means = {}

In [4]: for k, g in groupby(data, key=lambda x: x['id']):
...: g = list(g)
...: means[k] = sum(float(x['Value']) for x in g) / len(g)
...:
...:

In [5]: means
Out[5]:
{1: 0.69999999999999996,
2: 33.340000000000003,
3: 38.765000000000001,
4: 13.215,
5: 15.573333333333332,
6: 1.23}

关于Python,从字典数组中收集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com