Pandas resample - это нечеткий порядок дат - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь преобразовать некоторые данные тиков, которые у меня есть, на блоки по 1 минуте. Код, похоже, работает нормально, но когда я смотрю на полученный фрейм данных, он неправильно меняет порядок дат. Ниже показано, как это выглядит перед повторной выборкой:

                    Var2    Var3    Var4    Var5    Var6    Var7    Var8    Var9    Var10
2020-06-30 17:00:00 41.68   2   tptBid  tctRegular  NaN 255 NaN 0   msNormal
2020-06-30 17:00:00 41.71   3   tptAsk  tctRegular  NaN 255 NaN 0   msNormal
2020-06-30 17:00:00 41.68   1   tptTradetctRegular  NaN 255 NaN 0   msNormal
2020-06-30 17:00:00 41.71   5   tptAsk  tctRegular  NaN 255 NaN 0   msNormal
2020-06-30 17:00:00 41.71   8   tptAsk  tctRegular  NaN 255 NaN 0   msNormal
... ... ... ... ... ... ... ... ... ...
2020-01-07 17:00:21 41.94   5   tptBid  tctRegular  NaN 255 NaN 0   msNormal
2020-01-07 17:00:27 41.94   4   tptBid  tctRegular  NaN 255 NaN 0   msNormal
2020-01-07 17:00:40 41.94   3   tptBid  tctRegular  NaN 255 NaN 0   msNormal
2020-01-07 17:00:46 41.94   4   tptBid  tctRegular  NaN 255 NaN 0   msNormal
2020-01-07 17:00:50 41.94   3   tptBid  tctRegular  NaN 255 NaN 0   msNormal

Как вы можете видеть, дата начинается в 17:00 30 июня. Затем я использую этот код:

one_minute_dataframe['Price'] = df.Var2.resample('1min').last()
one_minute_dataframe['Volume'] = df.Var3.resample('1min').sum()
one_minute_dataframe.index = pd.to_datetime(one_minute_dataframe.index)
one_minute_dataframe.sort_index(inplace = True)

И я получаю следующее:

                    Price   Volume
2020-01-07 00:00:00 41.73   416
2020-01-07 00:01:00 41.74   198
2020-01-07 00:02:00 41.76   40
2020-01-07 00:03:00 41.74   166
2020-01-07 00:04:00 41.77   143
... ... ...
2020-06-30 23:55:00 41.75   127
2020-06-30 23:56:00 41.74   234
2020-06-30 23:57:00 41.76   344
2020-06-30 23:58:00 41.72   354
2020-06-30 23:59:00 41.74   451





        

Кажется, он хочет начать с полуночи 1 июля. Но я пробовал отсортировать индекс, и он по-прежнему не меняется.

Кроме того, индекс datetime, похоже, добавляет намного больше дат за пределами тех, которые были изначально в фрейме данных, и помещает их в середину повторно выбранной один.

Любая помощь была бы большой. Приносим извинения, если я плохо это изложил

1 Ответ

0 голосов
/ 04 августа 2020

Я вижу, что случилось. Где-то в загрузке данных поменялись местами месяц и день. Вот почему он помещает июль наверху, потому что думает, что это январь.

...