Можно ли написать агрегат в столбце с groupby в других столбцах и условия в столбце времени?
Вопрос:по группам ДАТА , ОТ и ДО , рассчитать некоторые из Пассажирские с в период -1 и +1 час Время для каждого Время ( Время находится в диапазоне 00: 00-23: 59) ([x-60, x-45, x-30, х-15, х, х + 15, х + 30, х + 45, х + 60]). набор данных представляет собой миллион строк для числа пассажиров рейсов в определенные дни и часы для определенных городов.
Date Time From To Passengers
2015/2/4 23:30 a c 1
2015/2/4 23:45 a c 2
2015/2/4 0:00 a c 1
2015/2/4 0:15 a c 2
2015/2/4 0:30 a c 3
2015/2/4 0:45 a c 4
2015/2/4 1:00 a c 5
2015/2/4 1:15 a c 6
2015/2/4 1:30 a c 7
2015/2/4 1:45 a c 8
2015/2/4 2:00 a c 9
2015/2/4 2:15 a c 10
2015/2/4 2:30 a c 11
2015/2/4 2:45 a c 12
2015/2/4 3:00 a c 13
2015/2/5 2:00 b c 14
2015/2/5 2:45 b c 14
2015/2/5 3:15 b c 14
2015/2/9 17:00 a f 17
2015/2/9 18:00 a f 18
2015/2/2 8:00 b f 19
2015/2/3 8:30 b f 20
Результат должен быть таким: (для каждого Дата и каждый FROM_TO , для каждого Время сумма Пассажиров от 1 часа назад до 1 часа спустя)
Date Time From To Passengers Passengers_2Hours
2015/2/4 23:30 a c 1 9
2015/2/4 23:45 a c 2 13
2015/2/4 0:00 a c 1 18
2015/2/4 0:15 a c 2 24
2015/2/4 0:30 a c 3 31
2015/2/4 0:45 a c 4 38
2015/2/4 1:00 a c 5 45
2015/2/4 1:15 a c 6 54
2015/2/4 1:30 a c 7 63
2015/2/4 1:45 a c 8 72
2015/2/4 2:00 a c 9 81
2015/2/4 2:15 a c 10 76
2015/2/4 2:30 a c 11 70
2015/2/4 2:45 a c 12 63
2015/2/4 3:00 a c 13 55
2015/2/5 2:00 b c 14 29
2015/2/5 2:45 b c 15 45
2015/2/5 3:15 b c 16 31
2015/2/9 17:00 a f 17 35
2015/2/9 18:00 a f 18 35
2015/2/2 8:00 b f 19 19
2015/2/3 8:30 b f 20 20
Я написал этокод, но я знаю, что это неверно:
df['aaa'] = sub.Date.astype(str) + '_' + sub.FROM.astype(str) + '_' + sub.TO.astype(str)
df['Passengers_'] = 0
for w in df.aaa.unique():
for x in df.Time.unique():
z = 0
for y in [x-100, x-75, x-50, x-25, x, x+25, x+50, x+75, x+100]:
z = z + df.Passengers[(df.aaa == w) & (df.Time == y)]
df.Passengers_[(df.aaa == w) & (df.Time == x)] = z
изображение набора данных