Я получил все мои данные в HDFStore (да!), Но как его получить из него ..перебрать HDFStore с использованием экономии chunksize в новый HDFStore
Я сохранил 6 DataFrames как frame_table в моем HDFStore , Каждая из этих таблиц выглядит следующим образом, но длина меняется (дата - юлианская дата).
>>> a = store.select('var1')
>>> a.head()
var1
x_coor y_coor date
928 310 2006257 133
932 400 2006257 236
939 311 2006257 253
941 312 2006257 152
942 283 2006257 68
Тогда я выбираю из всех моих таблиц значения где дата например> 2006256.
>>> b = store.select_as_multiple(['var1','var2','var3','var4','var5','var6'], where=(pd.Term('date','>',date)), selector= 'var1')
>>> b.head()
var1 var2 var3 var4 var5 var6
x_coor y_coor date
928 310 2006257 133 14987 7045 18 240 171
2006273 136 0 7327 30 253 161
2006289 125 0 -239 83 217 168
2006305 95 14604 6786 13 215 57
2006321 84 0 4548 13 133 88
Это работает, но только для относительно небольших .h5 файлов. Поэтому для моих обычных файлов .h5 я хотел бы временно сохранить его в HDFStore с помощью chunksize (так как я должен добавить к нему новый столбец на основе этого выбора). Я думал, как это (с помощью this):
for df in store.select_as_multiple(['var1','var2','var3','var4','var5','var6'], where=(pd.Term('date','>',date)), selector= 'var1', chunksize=15):
tempstore.put('test',pd.DataFrame(df))
Но тогда только один кусок будет добавлен в хранилище. Но с:
tempstore.append('test',pd.DataFrame(df))
Я получаю ValueError: можно добавлять только в таблицы. Что я делаю неправильно?
Спасибо за этот ценный бит информации. Но я еще не решил свою ситуацию полностью. Так как он вызывает следующую ошибку: ValueError: недопустимый комбинатор [values_axes] при добавлении данных [name-> values_block_0, cname-> values_block_0, axis-> None, pos-> 1, kind-> float] vs current table [имя- > values_block_0, cname-> values_block_0, axis-> None, pos-> 1, kind-> integer] ' Мои данные int32, но он пытается сохранить его как float. Почему он не копирует структуру данных? – Mattijn
Может ли у вас ссылка на ваши данные и ваш код для чтения/записи? – Jeff
Что произойдет, если вы используете более крупный фрагмент? fyi default chunksize is 50k – Jeff