gpt4 book ai didi

python - 如何从另一个类别执行滚动求和

转载 作者:行者123 更新时间:2023-12-01 00:09:41 25 4
gpt4 key购买 nike

我正在尝试执行一些计算来检索另一个类别的两次出现之间的类别的滚动总数。

我意识到用语言来描述并不容易。

所以,这是输入数据帧和预期输出的示例

输入:

Date       Category  Value
2012-01-04 A 10
2012-01-06 A 20
2012-02-15 B -10
2012-04-29 A 5
2012-04-30 A 70
2012-10-15 A 15
2012-10-16 B -30
2012-11-19 B -50

预期输出:
只有行 B 但提到了自上次出现 B 以来 A 的滚动总数
Date       Category  Value  Total_A_since_previous_B
2012-02-15 B -10 30
2012-10-16 B -30 90
2012-11-19 B -50 0

我尝试了几件事但没有成功。

你能帮我理解如何做到这一点吗?

最佳答案

首先为 B 的每次出现创建组,对值求和,然后将其作为新列分配给过滤后的 df。

(
pd.Series(np.where(df.Category.eq('B'), df.index, np.nan)).bfill()
.pipe(lambda x: df.groupby(x).Value.apply(lambda x: x[:-1].sum()))
.pipe(lambda x: df[df.Category=='B'].assign(Total_A_since_previous_B=x))
)

Date Category Value Total_A_since_previous_B
2 2012-02-15 B -10 30
6 2012-10-16 B -30 90
7 2012-11-19 B -50 0

关于python - 如何从另一个类别执行滚动求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59877868/

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