我在构建一个函数时遇到问题,该函数可以从数据框中的列中获取值,并为每个不同的事件保留一个计数器。
我想从列Col。
生成列CntCol Cnt
A 1
B 1
A 2
C 1
B 2
A 3
C 2
我的主要问题是保持每个计数器的值(A的计数器,B的计数器,C的......),因为基数非常高(数千个不同的值和一些近300万个记录)。 我正在考虑作为以下资源的最后资源:
1 - 将.unique()应用于列并将该系列存储在变量var中;
2 - 应用以下内容遍历数据框的所有行:IF df.col = var.VALUE1, CNT = CNT + 1;
3 - 浏览系列的所有值。
我希望是否有一种功能/方式可以让我更有效地执行此操作。
谢谢!
答案 0 :(得分:2)
如果我理解正确,
df["Cnt"] = df.groupby("Col").cumcount() + 1
df
Out[29]:
Col Cnt
0 A 1
1 B 1
2 A 2
3 C 1
4 B 2
5 A 3
6 C 2