Python 这是一种获得递增的事件计数的方法

Python 这是一种获得递增的事件计数的方法,python,pandas,Python,Pandas,我做了以下代码 df['C'] = 1 for i in range(1,len(df)): if (df.loc[i-1, 'A'] == df.loc[i, 'A']) and (df.loc[i-1, 'B'] == df.loc[i, 'B']): df.loc[i,'C'] = df.loc[i-1,'C'] + 1 为了以这种方式填充一个新列,“C” A B C 0 a unico 1 1 b u

我做了以下代码

df['C'] = 1
for i in range(1,len(df)):
    if (df.loc[i-1, 'A'] == df.loc[i, 'A']) and (df.loc[i-1, 'B'] == df.loc[i, 'B']):
        df.loc[i,'C'] = df.loc[i-1,'C'] + 1
为了以这种方式填充一个新列,“C”


    A   B           C
0   a   unico       1
1   b   unico       1
2   c   repetido    1
3   c   repetido    2
4   c   repetido    3
5   d   unico       1
6   e   repetido    1
7   e   repetido    2
8   f   unico       1
我想知道是否有一种方法可以在没有for循环的情况下实现这一点

谢谢大家!

您可以这样使用:

初始df:

+----+----+----------+
|    | A  |    B     |
+----+----+----------+
| 0  | a  | unico    |
| 1  | b  | unico    |
| 2  | c  | repetido |
| 3  | c  | repetido |
| 4  | c  | repetido |
| 5  | d  | unico    |
| 6  | e  | repetido |
| 7  | e  | repetido |
| 8  | f  | unico    |
+----+----+----------+
输出:


+----+----+-----------+---+
|    | A  |    B      | C |
+----+----+-----------+---+
| 0  | a  | unico     | 1 |
| 1  | b  | unico     | 1 |
| 2  | c  | repetido  | 1 |
| 3  | c  | repetido  | 2 |
| 4  | c  | repetido  | 3 |
| 5  | d  | unico     | 1 |
| 6  | e  | repetido  | 1 |
| 7  | e  | repetido  | 2 |
| 8  | f  | unico     | 1 |
+----+----+-----------+---+

+----+----+-----------+---+
|    | A  |    B      | C |
+----+----+-----------+---+
| 0  | a  | unico     | 1 |
| 1  | b  | unico     | 1 |
| 2  | c  | repetido  | 1 |
| 3  | c  | repetido  | 2 |
| 4  | c  | repetido  | 3 |
| 5  | d  | unico     | 1 |
| 6  | e  | repetido  | 1 |
| 7  | e  | repetido  | 2 |
| 8  | f  | unico     | 1 |
+----+----+-----------+---+