计数继续在列中出现值

时间:2019-03-06 22:22:38

标签: python pandas dataframe

我有一个像这样的数据框:

index   value
----    -----
1         A
2         A
3         A
4         A
5         B
6         B
7         A
8         B
9         C
10        C

我想添加一列以继续计数我的值,如下所示:

index   value   continues-count
----    -----    ----------
1         A       1
2         A       2
3         A       3
4         A       4
5         B       1
6         B       2
7         A       1
8         B       1
9         C       1
10        C       2

我可以使用循环来执行此操作,但是由于我的数据集非常庞大,因此需要花费很长时间!

1 个答案:

答案 0 :(得分:3)

使用cumsumitertools太无聊了,让我们尝试import itertools df['New']=list(itertools.chain(*[list(range(len(list(y))))for _,y in itertools.groupby(df.value)])) df Out[596]: index value New 0 1 A 0 1 2 A 1 2 3 A 2 3 4 A 3 4 5 B 0 5 6 B 1 6 7 A 0 7 8 B 0 8 9 C 0 9 10 C 1

pandas

df['New']=df.groupby((df.value!=df.value.shift()).ne(0).cumsum()).cumcount()+1

resources
 - config.properties

src
 - Main.java
 - Filter.java
 - module
    - test.txt