Предполагается, что df выглядит следующим образом:
df = pd.DataFrame(data={'time1':['2018-12-21 23:31:24.615','2018-12-22 01:33:26.015'],'time2':['2018-12-21 23:31:26.659','2018-12-22 01:33:32.865'],'time3':['2018-12-21 23:31:27.975','2018-12-22 01:59:05.136']})
time1 time2 time3
0 2018-12-21 23:31:24.615 2018-12-21 23:31:26.659 2018-12-21 23:31:27.975
1 2018-12-22 01:33:26.015 2018-12-22 01:33:32.865 2018-12-22 01:59:05.136
Преобразовать 'to_datetime'
df[['time1','time2','time3']] = df[['time1','time2','time3']].apply(pd.to_datetime,errors='coerce')
, создав столбец со средним значением первых 2 столбцов:
my_list= []
for i in df.index:
my_list.append(pd.to_datetime((df['time1'][i].value + df['time2'][i].value)/2.0))
df['avg'] = my_list
или просто:
df['avg'] = [(pd.to_datetime((df['time1'][i].value + df['time2'][i].value)/2.0)) for i in df.index]
нахождение разницы для column3 и avg:
(df.time3-df.avg).astype('timedelta64[m]')
output:
0 0.0
1 25.0
dtype: float64
PS: необходимо заменить столбцы time1
, time2
и time3
с именами столбцов в вашем фрейме данных.