Pandas HDFStore: сохранение и получение серии с индексом иерархического периода
Сначала я создаю серию с двумерным иерархическим индексом. Тип индекса для них (pandas.period, numpy.int32)
In [265]: import pandas as pd
In [266]: import numpy as np
In [267]: hdf_file = r'F:\test.h5'
In [268]: data = np.random.randint(10, size=(7, 3))
In [269]: dates = pd.date_range('1/1/2015', '1/7/2015').to_period('D')
In [270]: ts1 = pd.DataFrame(data, index = dates, columns = [1, 2, 3]).stack()
Затем я сохраняю серию (ts1) с помощью HDFStore и извлекаю ее (как ts2):
In [271]: with pd.HDFStore(hdf_file, 'w') as store:
...: store['ts'] = ts1
...:
In [272]: with pd.HDFStore(hdf_file, 'r') as store:
...: ts2 = store['ts']
...:
Теперь d-тип индекса извлеченного ряда (ts2) был изменен на целое число:
In [273]: print(ts1)
2015-01-01 1 3
2 8
3 0
2015-01-02 1 2
2 3
3 9
2015-01-03 1 9
2 2
3 2
2015-01-04 1 4
2 5
3 1
2015-01-05 1 2
2 1
3 6
2015-01-06 1 1
2 0
3 8
2015-01-07 1 0
2 6
3 8
dtype: int32
In [274]: print(ts2)
16436 1 3
2 8
3 0
16437 1 2
2 3
3 9
16438 1 9
2 2
3 2
16439 1 4
2 5
3 1
16440 1 2
2 1
3 6
16441 1 1
2 0
3 8
16442 1 0
2 6
3 8
dtype: int32
Есть ли способ сохранить серию правильно? Я знаю, что могу изменить тип после извлечения данных, но я предпочитаю делать работу аккуратно.
Я использую панды 0.16.1 и pyhon 2.7.7 (Anaconda 2.0.1 (64-разрядная версия))
1 ответ
Решение
Это не реализовано, смотрите проблему здесь
сохранить как временные метки и преобразовать в период после прочтения