如果上一行中的 ID 匹配,则为累积计数 - Python/Pandas



这就是我试图在python中实现的目标。excel中有一个简单的公式,pythonic处理这个问题的方式是什么?

CUM_FREQ      ID      
1          100001
2          100001
3          100001
4          100001
1          100002
2          100002
1          100003
2          100003
3          100003
4          100003

每次 ID 更改时CUM_FREQ行都应重置为 1。 Excel公式IF(C3=C2,B2+1,1(

提前感谢! 拉胡尔

一种简单的方法是将 ID 放在列表中并使用计数器来计算计数。

from collections import Counter
id_list = [100001, 100001, 100001, 100001, 100002, 100002, 100003, 100003, 100003, 100003]
cum_freq = []
for i, v in enumerate(id_list):
cum_freq.append(Counter(id_list[:i+1])[v])
print(cum_freq)
[1, 2, 3, 4, 1, 2, 1, 2, 3, 4]

最新更新