Я пытаюсь скопировать многолетний временной ряд дат и значений с плавающей запятой.Я пытаюсь объединять каждый день в 15-минутные корзины.Поэтому я группирую набор данных по дням, а затем повторяю выборку с 15-минутными приращениями в каждый день.
Результаты казались странными, поэтому я более внимательно посмотрел на поведение повторной выборки.Приведенный ниже код суммирует вид результатов, которые я наблюдал (я запускаю его в repl.it)
aindex = pd.to_datetime([
"2013-04-05 04:15:31",
"2013-04-05 05:15:18",
"2013-04-05 05:15:19",
"2013-04-05 05:15:19",
"2013-04-05 05:17:15",
"2013-04-05 07:06:31",
"2013-04-09 04:15:31",
"2013-04-09 05:15:18",
"2013-04-09 05:15:19",
"2013-04-09 05:15:19",
"2013-04-09 05:17:15",
"2013-04-09 07:06:31",
"2013-04-09 07:21:28",
"2013-04-09 09:18:19",
"2013-04-09 09:19:19",
"2013-04-09 09:21:31"])
a = pd.Series([-4.50e+08,
-4.80e+08,
-6.10e+08,
-5.80e+08,
-5.70e+08,
-5.710e+08,
-4.598432e+08,
-4.814140e+08,
-6.109284e+08,
-5.870819e+08,
-5.759888e+08,
-5.713363e+08,
-5.275122e+07,
-2.853787e+08,
-2.523782e+08,
-4.273267e+08],aindex)
print(a)
print(a.groupby(a.index).apply(lambda x: x))
print(a.resample("15T", base=0).apply(lambda x: x))
print(a.groupby(a.index).resample("15T").apply(lambda x: x))
'groupby' ведет себя, как и ожидалось, но обратите внимание, что каждое значение 'x' имеет тип pd.Series.'resample' также возвращает тип pd.Series, но, по-видимому, пропускает значения, когда я отображаю его в repl.it или Jupyter, но если вы измените .apply (lambda x: x) на .apply (lambda x: list (x)), вы можетевидите, на самом деле есть несколько значений.'groupby' + 'resample' почти делает то, что я ожидал, т.е.каждый день имеет 15-минутные интервалы, за исключением того, что индексация неверна везде, где «повторная выборка» возвращает более одного значения.
Я пытаюсь понять, что вижу, чтобы я мог с уверенностью применить процесс.Это правильное поведение, и если да, то почему?
Примечание: чтобы уточнить мои ожидания.Если я посмотрю на результат повторной выборки за один день, то в нее будут добавлены пустые ячейки:
2013-04-05 04:15:00 -450000000.0
2013-04-05 04:30:00 NaN
2013-04-05 04:45:00 NaN
2013-04-05 05:00:00 NaN
2013-04-05 05:15:00 -570000000.0
2013-04-05 05:30:00 NaN
2013-04-05 05:45:00 NaN
2013-04-05 06:00:00 NaN
2013-04-05 06:15:00 NaN
2013-04-05 06:30:00 NaN
2013-04-05 06:45:00 NaN
2013-04-05 07:00:00 -571000000.0
2013-04-05 07:15:00 NaN
2013-04-05 07:30:00 NaN
2013-04-05 07:45:00 NaN
2013-04-05 08:00:00 NaN
2013-04-05 08:15:00 NaN
2013-04-05 08:30:00 NaN
2013-04-05 08:45:00 NaN
2013-04-05 09:00:00 NaN
2013-04-05 09:15:00 NaN
2013-04-05 09:30:00 NaN
2013-04-05 09:45:00 NaN
2013-04-05 10:00:00 NaN
Но если групповой сбор выполняется первым, я не получаю пустые ячейки.Почему бы и нет?
1014 *