如何递增计算熊猫数据框中的每个不同值

bis*_*smo 1 python pandas

假设我有以下 df

  val
0  x
1  x
2  z
3  y
4  x
5  y
6  y
7  z
8  x
9  z
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,以增量方式跟踪每个值的计数,就像这样

  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
Run Code Online (Sandbox Code Playgroud)

我尝试使用count(),但这只是计算总数而不是增量。value_counts()做同样的事情,但只是按值分割,而不是增量。有没有简单的方法来实现这一目标?谢谢!

Grz*_*ski 6

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

df["new"] = df["val"] + df.groupby("val")["val"].cumcount().add(1).astype(str)
Run Code Online (Sandbox Code Playgroud)

输出:

  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
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

25 次

最近记录:

4 年,10 月 前