You can use:
df = pd.DataFrame({
'date': ['2018-08-03 10:53:00','2018-08-03 10:55:00'],
'b': [10, 11]
})
#if necessary convert to datetime
df['date'] = pd.to_datetime(df['date'])
df['new'] = df['date'].dt.hour * 3600 + df['date'].dt.minute * 60 + df['date'].dt.second
print (df)
b date new
0 10 2018-08-03 10:53:00 39180
1 11 2018-08-03 10:55:00 39300
mean = df['new'].mean()
print (mean)
39240.0
EDIT: If want mean ot time directly:
df['new'] = df['date'].dt.time
print (df)
b date new
0 10 2018-08-03 10:53:00 10:53:00
1 11 2018-08-03 10:55:00 10:55:00
mean = df['new'].mean()
print (mean)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'
But mean of datetime is possible - convert to unix time in ns
:
df['new'] = df['date'].values.astype(np.int64)
print (df)
b date new
0 10 2018-08-03 10:53:00 1533293580000000000
1 11 2018-08-03 10:55:00 1533293700000000000
mean = df['new'].mean()
print (mean)
1.53329364e+18