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

假设我有以下 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.groupby("val")["val"].cumcount().add(1).astype(str)

输出:

  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


以上是如何递增计算熊猫数据框中的每个不同值的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>