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

时间:2016-05-22 21:18:11

标签: python pandas dataframe counter

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

我想从列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 - 浏览系列的所有值。

我希望是否有一种功能/方式可以让我更有效地执行此操作。

谢谢!

1 个答案:

答案 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