Здесь есть порядок ватина и попытка сбросить его в зависимости от смены оппонента.
Например: когда противник перешел из штата Колорадо в UTSA, он должен сбросить обратно до 1
df['Batting Order'] = df['pa'].cumsum().mod(9).apply(lambda x: 9 if x == 0 else x)
pa Batting Order opponent
Abilene Christian 0 1 1 Colorado State
1 1 2 Colorado State
2 1 3 Colorado State
3 1 4 Colorado State
4 1 5 Colorado State
5 1 6 Colorado State
6 1 7 Colorado State
7 1 8 Colorado State
8 1 9 Colorado State
9 1 1 Colorado State
10 1 2 Colorado State
11 1 3 Colorado State
12 1 4 Colorado State
13 1 5 Colorado State
14 1 6 Colorado State
15 1 7 Colorado State
16 1 8 Colorado State
17 1 9 Colorado State
18 1 1 Colorado State
19 1 2 Colorado State
20 1 3 Colorado State
21 0 3 Colorado State
22 1 4 Colorado State
23 1 5 UTSA
24 1 6 UTSA
25 1 7 UTSA
26 0 7 UTSA
27 1 8 UTSA
28 1 9 UTSA
29 1 1 UTSA
30 0 1 UTSA
31 1 2 UTSA
32 0 2 UTSA
33 1 3 UTSA
34 0 3 UTSA