Код: Выделить всё
def calc_innings_pitched(pitcher_df):
innings_pitched = 0.0
for date, game_df in pitcher_df.groupby('Date'):
max_inning = game_df['Inning'].max()
last_row = game_df.iloc[-1]
outs = last_row['Outs']
innings = max_inning + (outs / 3.0)
innings_pitched += innings
if innings_pitched % 1 == (1/3):
return int(innings_pitched) + 0.1
elif innings_pitched % 1 == (1/3):
return int(innings_pitched) + 0.2
else:
return innings_pitched
Я не могу опубликовать исходный набор данных, но Pitcher_df будет выглядеть так:
Дата
Иннинг
Ауты
6/6
1
0
6/6
1
1
6/6
1< /td>
2
6/6
2
0
6/6
2
1
6/6
2
2
6/6< /td>
3
0
6 /6
3
1
< td>6/6
3
2
6/6
4
0
6/6
4
1
6/7
1
0
6/7
1
1
< /tr>
6/7
1
2
6/7
2
0
6/7
2
1
6/7
2
< td>1
6/7
2
2
Это должно дать Innings Pitched значение 4,1 для игры на 6/6 и 2,2 для игры на 6/7. В сумме это составит 7 поданных иннингов. Мне не нужно, чтобы отдельные игры были отформатированы как 4.1 и 2.2, а не как 4.333 и 2.666, поскольку мне нужно вернуть только общее количество иннингов.
Подробнее здесь: https://stackoverflow.com/questions/786 ... data-frame