Как получить доступ ко всему набору данных, хранящемуся в файле hdf5? [Дубликат]

Возьмем случай с двумя таблицами, Books и Orders. В случае увеличения количества книг в определенном порядке с Order.ID = 1002 в таблице Orders, нам также необходимо уменьшить, что общее количество книг, доступных в нашем запасе, одинаковым числом в таблице Books.

UPDATE Books, Orders
SET Orders.Quantity=Orders.Quantity+2,
Books.InStock=Books.InStock-2
WHERE Books.BookID=Orders.BookID
 AND Orders.OrderID = 1002;
4
задан MaxU 13 September 2017 в 20:47
поделиться

2 ответа

pandas.HDFStore.put () имеет параметр append (по умолчанию - False) - это указывает, что Pandas будет перезаписываться вместо добавления.

Так что попробуйте это :

store = pd.HDFStore('test.h5')

store.append('name_of_frame', ohlcv_candle, format='t',  data_columns=True)

мы также можем использовать store.put(..., append=True), но этот файл также должен быть создан в формате таблицы:

store.put('name_of_frame', ohlcv_candle, format='t', append=True, data_columns=True)
3
ответ дан MaxU 16 August 2018 в 05:50
поделиться
tohlcv_candle.to_hdf('test.h5',key='this_is_a_key', append=True, mode='r+', format='t')

Вам нужно передать другой аргумент append=True, чтобы указать, что данные должны быть добавлены к существующим данным, если они найдены под этим ключом, вместо того, чтобы переписывать его.

Без этого по умолчанию используется False, и если он встречает существующую таблицу под 'this_is_a_key', она перезаписывается.

Аргумент mode= находится только на уровне файла, указывая, должен ли файл в целом быть перезаписан или добавлен.

В одном файле может быть любое количество клавиш, поэтому установка mode='a', append=False будет означать, что только одна клавиша будет перезаписана, пока остальные ключи остаются.

У меня был такой же опыт, как у вас, и был найден дополнительный аргумент append в справочном документе. После настройки, теперь это добавление должным образом для меня.

Ссылка: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_hdf.html

Примечание: hdf5 не будет ничего делать с индексами dataframe. Нам нужно их убрать, прежде чем вставлять данные или когда мы их вынимаем.

0
ответ дан nikhilvj 16 August 2018 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: