#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()
делает то же самое, но просто разделяется по значениям, а не постепенно. Есть ли простой способ добиться этого? Спасибо!
Ответ №1:
Предполагается 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