GroupBy Pandas 计算连续的零

我的输入看起来像下面的df。


我需要按列(A,B)分组并计算连续零的数量/计算每个组中连续零的长度并写入新列“Zero_count”


Input:

A    B  DATE      hour  measure     

A10  1  1/1/2014    0   0       

A10  1  1/1/2014    1   0       

A10  1  1/1/2014    2   0       

A10  1  1/1/2014    3   0       

A10  2  1/1/2014    4   0       

A10  2  1/1/2014    5   1       

A10  2  1/1/2014    6   2       

A10  3  1/1/2014    7   0       

A11  1  1/1/2014    8   0       

A11  1  1/1/2014    9   0       

A11  1  1/1/2014    10  2       

A11  1  1/1/2014    11  0       

A11  1  1/1/2014    12  0       

A12  2  1/1/2014    13  1       

A12  2  1/1/2014    14  3       

A12  2  1/1/2014    15  0       

A12  4  1/1/2014    16  5       

A12  4  1/1/2014    17  0       

A12  6  1/1/2014    18  0       

我尝试使用“groupby”技术来获取组,但组内连续零计数是我正在寻找的东西。我曾尝试使用 lambda 函数,但它计算了零的总数,而我对重复连续的零感兴趣。我希望我的输出看起来像这样:


Output

A    B  DATE      hour  measure Consec_zero_count

A10  1  1/1/2014    0   0       4

A10  1  1/1/2014    1   0       4

A10  1  1/1/2014    2   0       4

A10  1  1/1/2014    3   0       4

A10  2  1/1/2014    4   0       1

A10  2  1/1/2014    5   1       0

A10  2  1/1/2014    6   2       0

A10  3  1/1/2014    7   0       1

A11  1  1/1/2014    8   0       2

A11  1  1/1/2014    9   0       2

A11  1  1/1/2014    10  2       0

A11  1  1/1/2014    11  0       2

A11  1  1/1/2014    12  0       2

A12  2  1/1/2014    13  1       0

A12  2  1/1/2014    14  3       0

A12  2  1/1/2014    15  0       1

A12  4  1/1/2014    16  5       0

A12  4  1/1/2014    17  0       1

A12  6  1/1/2014    18  0       1

任何线索将不胜感激。提前致谢!


一只斗牛犬
浏览 200回答 2
2回答

拉风的咖菲猫

创建助手Series通过比较连续值的唯一的组ne(!=)的shiftED值随cumsum。然后groupby用transform和size。仅用于0with 的最后一个 fiter 值numpy.where:g = df['measure'].ne(df['measure'].shift()).cumsum()counts = df.groupby(['A','B', g])['measure'].transform('size')df['Consec_zero_count'] = np.where(df['measure'].eq(0), counts, 0)print (df)      A  B      DATE  hour  measure  Consec_zero_count0   A10  1  1/1/2014     0        0                  41   A10  1  1/1/2014     1        0                  42   A10  1  1/1/2014     2        0                  43   A10  1  1/1/2014     3        0                  44   A10  2  1/1/2014     4        0                  15   A10  2  1/1/2014     5        1                  06   A10  2  1/1/2014     6        2                  07   A10  3  1/1/2014     7        0                  18   A11  1  1/1/2014     8        0                  29   A11  1  1/1/2014     9        0                  210  A11  1  1/1/2014    10        2                  011  A11  1  1/1/2014    11        0                  212  A11  1  1/1/2014    12        0                  213  A12  2  1/1/2014    13        1                  014  A12  2  1/1/2014    14        3                  015  A12  2  1/1/2014    15        0                  116  A12  4  1/1/2014    16        5                  017  A12  4  1/1/2014    17        0                  118  A12  6  1/1/2014    18        0                  1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python