【发布时间】:2016-01-20 17:11:54
【问题描述】:
鉴于拥有一百万条记录的大型数据集,我正在寻找分组依据的方法。 我是 python 新手,但我知道在 SQL 中有一个 groupby 函数,我猜它可能适用。
我想要达到的是这个,
来自
["A", 4]
["B", 4]
["F", 3]
["A", 4]
["B", 1]
到
["A", (4,4)]
["B", (1,4)]
["F", (3)]
我也在寻找一种有效的方法来计算评分列表的平均值。所以最后的输出应该是:
["A", 4]
["B", 2.5]
["F", 3]
我尝试对其进行迭代处理,但抛出的错误是“要解压的数据太多”。这是我的解决方案,不适用于数据集。
len = max(key for (item, key) in results)
newList = [[] for i in range(len+1)]
for item, key in results:
newList[key].append(item)
我正在寻找有效的方法,有没有办法在列表理解中进行分组?谢谢!
【问题讨论】:
-
该错误表示您的数据集不是格式为
[(x, y), ...]。你确定results是(x, y)对的可迭代对象吗?
标签: python