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 |
+----+----+-----------+---+