Шаг 1: Нахождение разницы во времени в последовательных строках:
df['deltaT'] = df.time.to_series().diff().dt.seconds.div(60, fill_value=0)
Выше приведен новый столбец о том, сколько разн.находится между последовательными строками
Шаг 2: репликация строк на основе нового столбца deltaT
df.reindex(df.index.repeat(df.deltaT))
Шаг 3: построение логики для увеличения столбца времени
df['time'] = pd.to_timedelta(df['time']) + pd.to_timedelta(df['deltaT'], unit='m')
Все еще не удаетсячтобы дать вам последнюю часть.
Если вы найдете это полезным и можете продолжить на этом. Отлично!