gpt4 book ai didi

python - 按第二个元素对元组列表进行分组,取第一个元素的平均值

转载 作者:行者123 更新时间:2023-11-28 17:58:15 27 4
gpt4 key购买 nike

我有一个元组列表 (x,y),例如:

l = [(2,1), (4,6), (3,1), (2,7), (7,10)]

现在我想创建一个新列表:

l = [(2.5,1), (4,6), (2,7), (7,10)]

如果元组中有多个元组具有相同的第二个值 (y),则新列表具有元组的第一个值 (x) 的平均值。

这里因为对于 (x,y) = (2,1) 和 (3,1),元组 y=1 中的第二个元素是常见的,因此 x=2 和 3 的平均值在新列表中。 y=1 不会出现在其他任何地方,因此其他元组保持不变。

最佳答案

自从您标记了 pandas:

l = [(2,1), (4,6), (3,1), (2,7), (7,10)]
df = pd.DataFrame(l)

那么df就是一个有两列的数据框:

    0   1
0 2 1
1 4 6
2 3 1
3 2 7
4 7 10

现在您要计算 0 列中的数字与 1 列中的相同值的平均值:

(df.groupby(1).mean()     # compute mean on each group
.reset_index()[[0,1]] # restore the column order
.values # return the underlying numpy array
)

输出:

array([[ 2.5,  1. ],
[ 4. , 6. ],
[ 2. , 7. ],
[ 7. , 10. ]])

关于python - 按第二个元素对元组列表进行分组,取第一个元素的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067314/

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