我想在额外的一列中获取连续行的数量。
例如,我想要得到的结果如下:
class consecutive_count
a 3
a 3
a 3
b 2
b 2
c 1
d 1
e 3
e 3
e 3
f 1
a 1
c 1
d 2
d 2
我尝试过的最佳方法是:
- 使用
df.groupby
:
df['consecutive_count'] = df.groupby('class')['class'].transform('count')
但这会给出整个数据框中类别的总数,而不是连续行的计数:
class consecutive_count
a 4
a 4
a 4
b 2
b 2
c 2
d 3
e 3
e 3
e 3
f 1
a 4
c 2
d 3
d 3
- 使用
cumsum
:
df['consecutive-count'] = (df['class'] != df['class'].shift()).cumsum()
这可以将连续行进行分组,但并未得到所需结果:
class consecutive_count
a 1
a 1
a 1
b 2
b 2
c 3
d 4
e 5
e 5
e 5
f 6
a 7
c 8
d 9
d 9
我真的不知道该如何解决这个问题。