Я создал многоиерархический индекс из кадров, которые были проиндексированы по времени:
original_thing
time day_1 day_2 day_3 day_4
2018-05-24 20:00:00 0 0 1 0
2018-05-25 00:00:00 0 0 0 1
2018-05-25 04:00:00 0 0 0 1
2018-05-25 08:00:00 0 0 0 1
пересчитал и агрегировал информацию в виде различных объектов и упаковал их в список
DF_list = [original_thing, resampled_1, resampled_2]
используя pandas concat с кодом, который выглядит в основном так:
thisthing = pandas.concat(DF_list, keys=range(len(DF_list), names=['one','time'], sort=True)
, чтобы получить Dataframe, который выглядит следующим образом:
one time day_1 day_2 day_3 day_4
2 2018-05-24 00:00:00 0 0 1 0
1 2018-05-24 12:00:00 0 0 1 0
0 2018-05-24 20:00:00 0 0 1 0
0 2018-05-25 00:00:00 0 0 0 1
1 2018-05-25 00:00:00 0 0 0 1
2 2018-05-25 00:00:00 0 0 0 1
0 2018-05-25 04:00:00 0 0 0 1
0 2018-05-25 08:00:00 0 0 0 1
Я хотел бы взять индекс 'one' иget:
one time id_1 id_2 id_3 day_...
2 2018-05-24 00:00:00 0 0 1 0
1 2018-05-24 12:00:00 0 1 0 0
0 2018-05-24 20:00:00 1 0 0 0
0 2018-05-25 00:00:00 1 0 0 1
1 2018-05-25 00:00:00 0 1 0 1
2 2018-05-25 00:00:00 0 0 1 1
0 2018-05-25 04:00:00 1 0 0 1
0 2018-05-25 08:00:00 1 0 0 1
где id_'#'
- закодированные индексы из 'one'
Я пытался кодировать его с помощью:
conc_ohlc_dummies= pandas.get_dummies(conc_ohlc['one'], prefix= 'hours')
, но получаюэта ошибка:
return self._engine.get_loc (self._maybe_cast_indexer (key)) Файл "pandas_libs \ index.pyx", строка 140, в файле pandas._libs.index.IndexEngine.get_loc "pandas_libs \ index.pyx ", строка 162, в файле pandas._libs.index.IndexEngine.get_loc" pandas_libs \ hashtable_class_helper.pxi ", строка 1492, в файле pandas._libs.hashtable.PyObjectHashTable.get_lip_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_px, строка 1500, в pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: 'one'
Я также пытался переиндексировать его, чтобы исключить значения индекса.Есть ли другой способ, кроме записи в csv и повторного открытия для этого?
спасибо всем