在一个Pandas Dataframe 中,我试图计算True连续出现了多少次。
(eg.真、真、真表示连续发生2次)
输入:
df = pd.DataFrame({"A": [False, False, True, True, False, True, False, False, False, False, True, True, True, True, False, True, True, True]})
输出:
6
我真的不知道如何解答这个问题。
在一个Pandas Dataframe 中,我试图计算True连续出现了多少次。
(eg.真、真、真表示连续发生2次)
输入:
df = pd.DataFrame({"A": [False, False, True, True, False, True, False, False, False, False, True, True, True, True, False, True, True, True]})
输出:
6
我真的不知道如何解答这个问题。
2条答案
按热度按时间42fyovps1#
这里有一个方法:
输出:
对False值使用累计和创建所有True值的分组,然后对每组中的True值求和,减去定义该组的第一个False值的1。使用剪辑消除不包含True的组,然后对这些值求和。
下面是另一种通过 Dataframe 列分解步骤的方法。
输出:
详细输出:
fafcakar2#
因为连续的定义是“前面有
True
的True
“,所以一个非常简单的方法是将列与其移位后的自身进行比较,然后比较sum
:输出:
6
中间体: