创建一列,增加另一行更改的值 [英] Create a column which increments value for changes in another row

查看:40
本文介绍了创建一列,增加另一行更改的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含两列的数据框,如下所示:

I have a dataframe with two columns as below:

Var1Var2
a   28
b   28
d   28
f   29
f   29
e   30
b   30
m   30
l   30
u   31
t   31
t   31

我想创建第三列,其中的值随着另一列值的每次变化而增加一.

I'd like to create a third column with values which increases by one for every change in value of another column.

Var1Var2Var3
a   28  1
b   28  1
d   28  1
f   29  2
f   29  2
e   30  3
b   30  3
m   30  3
l   30  3
u   31  4
t   31  4
t   31  4

我该怎么做?

推荐答案

Using category

df.Var2.astype('category').cat.codes.add(1)
Out[525]: 
0     1
1     1
2     1
3     2
4     2
5     3
6     3
7     3
8     3
9     4
10    4
11    4
dtype: int8

更新了

from itertools import groupby
grouped = [list(g) for k, g in groupby(df.Var2.tolist())]
np.repeat(range(len(grouped)),[len(x) for x in grouped])+1

这篇关于创建一列,增加另一行更改的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆