С большой помощью Криса мы нашли решение этой проблемы, базовая такая же, как введите описание ссылки здесь , но с небольшой модификацией, чтобы начать с нужной базы, трюкздесь нужно добавить базу (начальную точку) в качестве первого ряда data.frame
Вот коды 100
s = pd.DataFrame({
'X':np.arange(1,10),
'time':pd.to_datetime([
'20130101 00:00:00',
'20130101 7:34:04', '20130101 8:34:08', '20130101 10:34:08',
'20130101 12:34:15', '20130101 13:34:28', '20130101 12:34:54',
'20130101 14:34:55', '20130101 17:29:12']),
'time-group':[1,7,8,10,12,13,12,14,17]
})
# '20130101 00:00:00' is the base I want, you can change it to whatever you want.
s.sort_values(['time'], ascending=[True],inplace=True)
new = s.groupby(pd.Grouper(key='time', freq='15T'), as_index=False).apply(lambda x: x['time'])
s['time-group'] = new.index.get_level_values(0)
, которые дадут вам:
X time time-group
0 1 2013-01-01 00:00:00 0
1 2 2013-01-01 07:34:04 30
2 3 2013-01-01 08:34:08 34
3 4 2013-01-01 10:34:08 42
4 5 2013-01-01 12:34:15 50
5 6 2013-01-01 13:34:28 50
6 7 2013-01-01 12:34:54 54
7 8 2013-01-01 14:34:55 58
8 9 2013-01-01 17:29:12 69