Причина, по которой ваша функция не работает: расширение расширяет массив на месте и не возвращает его. Вы можете вернуть x из лямбда, используя некоторый трюк:
reduce(lambda x,y: x.extend(y) or x, l)
Примечание: расширение более эффективно, чем + в списках.
Resample имеет аргумент base
, который охватывает этот случай:
ts.resample(rule='24H', closed='left', label='left', base=17).sum()
Выход:
2012-01-01 17:00:00 24
2012-01-02 17:00:00 24
2012-01-03 17:00:00 12
Freq: 24H