gpt4 book ai didi

python - 查找重复值束并分别对它们执行操作

转载 作者:行者123 更新时间:2023-12-03 23:59:29 25 4
gpt4 key购买 nike

我有 Pandas 系列的那种

    a = pd.Series([1,  4,3,5,  7,5,  5,6,7,6,  7,  6,2,2,  6,  9])

和一个numpy类型的数组

    b = np.array([0,  1,1,1,  0,0,  1,1,1,1,  0,  1,1,1,  0,  1])

现在我想在 b 的相应部分中存在 1 簇时分别生成 a 中元素的平均值, 结果

    c = pd.Series([1,  4,4,4,  7,5,  6,6,6,6,  7,  3.3,3.3,3.3  6,  9])

有人知道如何很好地做到这一点吗?

最佳答案

尝试使用 shift+cumsum ,注意 6,2,2, 的平均值是 3.333.. 而不是 5

s = pd.Series(b,index=a.index)
a.groupby(s.ne(s.shift()).cumsum()).transform('mean').where(s.eq(1),a)

0     1.000000
1 4.000000
2 4.000000
3 4.000000
4 7.000000
5 5.000000
6 6.000000
7 6.000000
8 6.000000
9 6.000000
10 7.000000
11 3.333333
12 3.333333
13 3.333333
14 6.000000
15 9.000000
dtype: float64

关于python - 查找重复值束并分别对它们执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63618938/

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