假设我有以下 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()
做同样的事情,但只是按值拆分,而不是增量。有没有简单的方法来实现这一目标?谢谢!
答案 0 :(得分:6)
假设 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