Use Series.dt.round
with 10S
parameter:
df['datetime'] = pd.to_datetime(df['datetime'])
df['datetime'] = df['datetime'].dt.round('10S')
print (df)
datetime
0 2017-06-25 00:31:50
1 2017-06-25 00:32:40
2 2017-06-25 00:33:10
3 2017-06-25 00:34:00
4 2017-06-25 00:34:30
5 2017-06-25 00:35:20
If 2 columns:
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'])
df['datetime'] = df['datetime'].dt.round('10S')
df['date'] = df['datetime'].dt.date
df['time'] = df['datetime'].dt.time
print (df)
date time datetime
0 2017-06-25 00:31:50 2017-06-25 00:31:50
1 2017-06-25 00:32:40 2017-06-25 00:32:40
2 2017-06-25 00:33:10 2017-06-25 00:33:10
3 2017-06-25 00:34:00 2017-06-25 00:34:00
4 2017-06-25 00:34:30 2017-06-25 00:34:30
5 2017-06-25 00:35:20 2017-06-25 00:35:20
d = pd.to_datetime(df['date'] + ' ' + df['time']).dt.round('10S')
df['date'] = d.dt.date
df['time'] = d.dt.time
print (df)
date time
0 2017-06-25 00:31:50
1 2017-06-25 00:32:40
2 2017-06-25 00:33:10
3 2017-06-25 00:34:00
4 2017-06-25 00:34:30
5 2017-06-25 00:35:20