python - 从条件开始计算行数

标签 python pandas boolean cumsum

我在 Pandas 中有一列包含 boolean 值,我想计算自最后一个 True 值以来的所有行,如下所示:

a           b
False       0
True        0
False       1
False       2 
False       3  
True        0
False       1
True        0

我可以通过循环来完成,但似乎必须有更好的方法

最佳答案

a = ~df['a']
b = a.cumsum()
c = b-b.where(~a).ffill().fillna(1).astype(int)
print (c)
0    0
1    0
2    1
3    2
4    3
5    0
6    1
7    0
Name: a, dtype: int32

关于python - 从条件开始计算行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048747/

相关文章:

python - 使用 Bottle/Uwsgi/nginx 在第一个请求之前执行工作

python - 如何使用 TFF api 进行自定义使用?

python - 如何在我的特定条件下在数据框中添加列?

Python Pandas 日期时间范围之间的累积列

java - 如何编写一个对某些参数返回 True 的私有(private)方法?

python - Django测试使用Selenium包报错

python - 如何在 Python 中查找装饰方法的包含类

python - 如何获取数据透视表中的连接值?

java - "likeCount"增量器的 boolean 逻辑

python - 为什么我不能在 Python 中扩展 bool?