Предполагается, что ваш столбец времени имеет тип string. Вы можете использовать следующую строку, которая будет выполнять группу следующим образом.
df.groupby(df.time.map(lambda t: pd.to_datetime(t).minute)).val.last()
Но чтобы затем создать новый столбец, содержащий эти значения, вы можете использовать transform
, который будет выглядеть следующим образом:
df['result'] = df.groupby(df.time.map(lambda t: pd.to_datetime(t).minute)).val.transform('last')
Обратите внимание , что я предполагаю, что вы хотите сгруппировать по минутной части метки времени.