与下面的问题相关,我想计算以下行数。 多亏了答案,我可以处理数据。
但我遇到了一些麻烦和异常。
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
怎么可能这样做?
我很高兴有人告诉我如何处理这类问题。
答案 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