I have a dataframe similar to the following:
import pandas as pd
data = {"Name":["Andrew","Andrew","Andrew","Andrew","Andrew","Andrew","Andrew", "Sam", "Sam", "Sam", "Sam", "Sam"], "PASS":[0, 1, 1, 0, 1, 1, 1, 0, 1, 1,0,1]}
df = pd.DataFrame(data=data)
Output
Name PASS
0 Andrew 0
1 Andrew 1
2 Andrew 1
3 Andrew 0
4 Andrew 1
5 Andrew 1
6 Andrew 1
7 Sam 0
8 Sam 1
9 Sam 1
10 Sam 0
11 Sam 1
I want to generate a dataframe which contains the largest consecutive passes for each student:
Name MAX_PASS
0 Andrew 3
1 Sam 2
I need a little help modifying the code that I have so far. The count
is outputting 0110110110
and the result = 2
. Which is not quite correct. I think I'm close but need some help to get over the finish line. Thanks.
count = ''
for i in range(len(df)-1):
if df.Name[i] == df.Name[i+1]:
if df.PASS[i] == 0:
count += "0"
else:
count += "1"
result = len(max(count.split('0')))