gpt4 book ai didi

python : several cumprods per column

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:20 25 4
gpt4 key购买 nike

我有以下 df:

   id  column
1 NaN
1 1
1 1.05
1 1.10
1 NaN
1 NaN
1 3
1 1.08
1 1.07
1 NaN

我想在列上创建一个累积乘积。但是,只要 NaN 介于两者之间,产品就应该重新启动。结果应如下所示:

   id  column
1 NaN
1 1
1 1.05
1 1.155
1 NaN
1 NaN
1 3
1 3.24
1 3.4668
1 NaN

下面的代码看起来很理想,但它返回错误:AttributeError: 'float' object has no attribute 'shift'。

df["column"] = df["column"].apply(lambda x: x*x.shift(1))

此外:此命令仅返回零并将整个列视为一个产品,因此似乎不适合我的问题:

df["column"] = df["column"].cumprod()

最佳答案

让我们使用 groupbycumsum 来识别要应用 cumprod 的组:

df.groupby(df.column.isnull().cumsum()).cumprod()

输出:

   id  column
0 1 NaN
1 1 1.0000
2 1 1.0500
3 1 1.1550
4 1 NaN
5 1 NaN
6 1 3.0000
7 1 3.2400
8 1 3.4668
9 1 NaN

关于 python : several cumprods per column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523806/

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