Вы можете использовать pd.Series.dt.floor
, чтобы рассчитывать время в минуту. Предполагается, что вы указываете минутные интервалы каждый раз, когда вы достигаете 0 секунд.
Тогда отбросьте дубликаты и нас GroupBy
+ diff
.
df['DT'] = pd.to_datetime(str(pd.to_datetime('today')) + ' ' + df['TIME'])
df['DT'] = df['DT'].dt.floor('min')
res = df.drop_duplicates('DT')
res['DIFF'] = res.groupby('PRCESS_NO')['VALUE'].diff()
print(res)
TIME PRCESS_NO VALUE DT DIFF
0 13:40:34 1111 10254 2018-08-28 13:40:00 NaN
5 13:41:08 1111 10254 2018-08-28 13:41:00 0.0
8 13:42:14 1111 10254 2018-08-28 13:42:00 0.0
15 13:43:04 2222 25855 2018-08-28 13:43:00 NaN
18 13:44:10 2222 68522 2018-08-28 13:44:00 42667.0