创建一列,增加另一行更改的值 [英] Create a column which increments value for changes in another row
本文介绍了创建一列,增加另一行更改的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含两列的数据框,如下所示:
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屋!
查看全文