Для df
:
DATE_RECORDED PERSON LOG_TIMES
0 2018-03-22 11:58:23.585 JOHN [15/03/2018 10:30:48, 15/03/2018 10:29:48]
1 2018-03-22 11:58:23.585 JOHN [20/03/2018 14:28:36, 20/03/2018 14:26:36, 20/03/2018 14:26:30]
Вам необходимо:
df['LOG_TIMES'] = df['LOG_TIMES'].apply(lambda x: list(pd.Series([dt.datetime.strptime(y.strip(), '%d/%m/%Y %H:%M:%S') for y in x[1:-1].split(',')]).diff().astype('timedelta64[s]').dropna().mul(-1)))
Вывод:
DATE_RECORDED PERSON LOG_TIMES
0 2018-03-22 11:58:23.585 JOHN [60.0]
1 2018-03-22 11:58:23.585 JOHN [120.0, 6.0]
Если df['LOG_TIMES']
уже список datetime
объектов, вы можете просто использовать:
df['LOG_TIMES'].apply(lambda x: list(pd.Series(x).diff().astype('timedelta64[s]').dropna().mul(-1)))