【发布时间】:2015-06-20 20:16:47
【问题描述】:
我想做他们在答案中所做的事情:Calculating the number of specific consecutive equal values in a vectorized way in pandas ,但使用分组数据框而不是系列。
所以给定一个包含多列的数据框
A B C
------------
x x 0
x x 5
x x 2
x x 0
x x 0
x x 3
x x 0
y x 1
y x 10
y x 0
y x 5
y x 0
y x 0
我想对列 A 和 B 进行分组,然后计算 C 中连续零的数量。之后,我想返回每个零长度出现的次数的计数。所以我想要这样的输出:
A B num_consecutive_zeros count
---------------------------------------
x x 1 2
x x 2 1
y x 1 1
y x 2 1
我不知道如何调整链接问题的答案以处理分组数据框。
【问题讨论】:
-
目标输出的前两行和后两行有什么区别?为什么不把这些组合在一起。我不确定你是否清楚地解释了你想要实现的逻辑。
-
@Alexander 取前两行 (x x),单个零模式在该分组中出现 2 次。两个连续的零模式在该分组中出现一次。最后两行用于具有相同逻辑的 (y x) 分组。有意义吗?
-
是的,@BobHaffner 就是这么解释的。我应该为玩具示例的 A 和 B 列选择更好的值。
-
因此,如果前七行(所有 A='x')的值一组接一组连续出现,那么 num_consecutive_zeros 的所需输出将为 1、2、1、2计数=2,1,2,1?还是分别是 2、4 和 4,2?
标签: python pandas count group-by