如何计算pandas中的以下行数(新)

时间:2017-02-01 09:45:08

标签: python pandas dataframe

与下面的问题相关,我想计算以下行数。 多亏了答案,我可以处理数据。

但我遇到了一些麻烦和异常。

How to count the number of following rows in pandas

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

首先,我想剪切df.with startswith(“a”)

DF1

A B
1 a0

DF2

A B
2 a1
3 b1

DF3

A B
4 a0
5 b2

DF4

A B
6 a2

DF5

A B
7 a2

我想计算每个df的行

"a"  number
a0  1
a1  2
a0  2
a2  1
a2  1

怎么可能这样做?

我很高兴有人告诉我如何处理这类问题。

1 个答案:

答案 0 :(得分:2)

您可以使用Series创建的自定义cumsum使用aggregate

print (df.B.str.startswith("a").cumsum())
0    1
1    2
2    2
3    3
4    3
5    4
6    5
Name: B, dtype: int32

df1 = df.B.groupby(df.B.str.startswith("a").cumsum()).agg(['first', 'size'])
df1.columns =['"A"','number']
df1.index.name = None
print (df1)
  "A"  number
1  a0       1
2  a1       2
3  a0       2
4  a2       1
5  a2       1