pop_n, smp_n = 1000000, 500000
np.random.seed([3, 1415])
tidx = pd.date_range('2016-09-08', periods=pop_n, freq='5s')
tidx = np.random.choice(tidx, smp_n, False)
tidx = pd.to_datetime(tidx).sort_values()
df = pd.DataFrame(dict(time=tidx, value=np.random.rand(smp_n)))
Pandas: сохранение только первой строки данных в каждой 60-секундной ячейке