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