作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试执行一些计算来检索另一个类别的两次出现之间的类别的滚动总数。
我意识到用语言来描述并不容易。
所以,这是输入数据帧和预期输出的示例
输入:
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
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/
我是一名优秀的程序员,十分优秀!