Python 如何递增地计算数据帧中的每个不同值

Python 如何递增地计算数据帧中的每个不同值,python,pandas,Python,Pandas,假设我有下面的df val 0 x 1 x 2 z 3 y 4 x 5 y 6 y 7 z 8 x 9 z 我想创建一个新列,以增量方式跟踪每个值的计数,如下所示 val new 0 x x1 1 x x2 2 z z1 3 y y1 4 x x3 5 y y2 6 y y3 7 z z2 8 x x4 9 z z3 我试着使用count,但那只是计算总数,而不是递增。value_counts的作用相同

假设我有下面的df

  val
0  x
1  x
2  z
3  y
4  x
5  y
6  y
7  z
8  x
9  z
我想创建一个新列,以增量方式跟踪每个值的计数,如下所示

  val  new
0  x   x1
1  x   x2
2  z   z1
3  y   y1
4  x   x3
5  y   y2
6  y   y3
7  z   z2
8  x   x4
9  z   z3
我试着使用count,但那只是计算总数,而不是递增。value_counts的作用相同,但只是按值分割,而不是递增。有没有一个简单的方法来实现这一点?谢谢

假设df是您的输入数据帧:

df[new]=df[val]+df.groupbyval[val].cumcount.add1.astypestr 产出:

瓦尔新 0 x x1 1 x x2 2ZZ1 3 y y1 4 x x3 5 y y2 6 y y3 7 z z2 8 x x4 9 z z3 假设df是您的输入数据帧:

df[new]=df[val]+df.groupbyval[val].cumcount.add1.astypestr 产出:

瓦尔新 0 x x1 1 x x2 2ZZ1 3 y y1 4 x x3 5 y y2 6 y y3 7 z z2 8 x x4 9 z z3