数据框列中许多不同值的计数器

counter for many distinct values in data frame column

我在构建函数时遇到问题,该函数可以从数据框中的列中获取值并为每个不同的事件保留一个计数器。

我想从 Col 列生成 Cnt 列

Col 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 - 遍历该系列的所有值。

我希望有一个 function/way 可以让我更有效地执行此操作。

谢谢!

如果我没理解错的话,

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