There is a data frame which includes a column of record number (ascending order) and a column of weekdays. The plan is to extract the first and last record numbers of each day. For example:
df = pd.DataFrame({'records': [1, 2, 3, 4, 6, 7, 8, 12, 14, 15, 16, 19, 23, 26, 29, 38, 43, 59, 61],
'weekday': ['Monday', 'Monday', 'Monday', 'Tuesday', 'Tuesday', 'Wednesday', 'Thursday',
'Thursday', 'Thursday', 'Friday', 'Friday', 'Friday', 'Saturday', 'Sunday',
'Monday', 'Monday', 'Tuesday', 'Wednesday', 'Wednesday']})
>>> df
records weekday
0 1 Monday
1 2 Monday
2 3 Monday
3 4 Tuesday
4 6 Tuesday
5 7 Wednesday
6 8 Thursday
7 12 Thursday
8 14 Thursday
9 15 Friday
10 16 Friday
11 19 Friday
12 23 Saturday
13 26 Sunday
14 29 Monday
15 38 Monday
16 43 Tuesday
17 59 Wednesday
18 61 Wednesday
I am trying to get something like this:
first last records weekday
0 1 3 1 Monday
1 1 3 2 Monday
2 1 3 3 Monday
3 4 6 4 Tuesday
4 4 6 6 Tuesday
5 7 7 7 Wednesday
6 8 14 8 Thursday
7 8 14 12 Thursday
8 8 14 14 Thursday
9 15 19 15 Friday
10 15 19 16 Friday
11 15 19 19 Friday
12 23 23 23 Saturday
13 26 26 26 Sunday
14 29 38 29 Monday
15 29 38 38 Monday
16 43 43 43 Tuesday
17 59 61 59 Wednesday
18 59 61 61 Wednesday
So where can I start? Is it the right direction to iterate the weekday column from the top to the bottom while monitoring any change?