我有一个如下所示的数据框:
cid e tp
A 1 1
A 1 1
A 2 2
A 2 2
A 3 3
A 3 3
A 3 4
A 3 5
B 3 23
B 3 23
B 3 23
B 3 23
B 3 23
B 3 23
B 4 24
B 5 25
B 5 26
B 5 27
B 5 27
B 5 27
C 1 28
C 1 28
C 2 29
D 1 30
D 2 31
D 3 32
D 4 33
D 4 33
我需要在条件下获得另一列“结果”:
如果'cid'中的特定值保持不变,'e'中的特定值并且'tp'中的值也保持不变,则只有在'result'中添加计数器值否则应分配0。最终的数据框应如下所示:
cid e tp result
A 1 1 1
A 1 1 1
A 2 2 2
A 2 2 2
A 3 3 0
A 3 3 0
A 3 4 0
A 3 5 0
B 3 23 3
B 3 23 3
B 3 23 3
B 3 23 3
B 3 23 3
B 3 23 3
B 4 24 4
B 5 25 0
B 5 26 0
B 5 27 0
B 5 27 0
B 5 27 0
C 1 28 5
C 1 28 5
C 2 29 6
D 1 30 7
D 2 31 8
D 3 32 9
D 4 33 10
D 4 33 10
尝试了 where()、groupby() 和 shift() 的多种组合。似乎没有任何效果。