如何计算pandas中后续行的数量

时间:2017-02-01 03:34:17

标签: python pandas dataframe

我有以下数据框

A B
1 a0
2 b0
3 b1
4 a1
5 b2
6 a2

首先,我想用startwith(" a")

剪切df

DF1

A B
1 a0
2 b0
3 b1

DF2

A B
4 a1
5 b2

DF3

A B
6 a2

我想计算行数。 并总结结果。

我想要的结果在

之下
   rows 
a0 3
a1 2
a2 1

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以将不以a开头的单元格转换为缺失值并转发填充系列,然后执行value_counts

df.B.where(df.B.str.startswith("a"), None).ffill().value_counts()
​
#a0    3
#a1    2
#a2    1
#Name: B, dtype: int64

如果您出现重复的a,为了区分它们,您可以使用cumsum创建其他组变量:

start_a = df.B.str.startswith("a")
df.groupby(by = [df.B.where(start_a, None).ffill(), start_a.cumsum().rename('g')]).size()

#B   g        # here is an extra group variable to differentiate possible duplicated a rows
#a0  1    3
#a1  2    2
#a2  3    1
#dtype: int64