草庐IT

Pytables

全部标签

mongodb - 存储和查询气象数据大数据集的更好方法是什么

我正在寻找一种方便的方式来存储和查询大量气象数据(几TB)。有关问题中间数据类型的更多信息。以前我一直在寻找MongoDB的方向(我在我自己以前的许多项目中都使用它并且感觉很舒服),但最近我发现了关于HDF5的信息。数据格式。阅读它,我发现它与Mongo有一些相似之处:HDF5simplifiesthefilestructuretoincludeonlytwomajortypesofobject:Datasets,whicharemultidimensionalarraysofahomogenoustypeGroups,whicharecontainerstructureswhichc

python - PyTables 批量获取和更新

我将每日股票数据作为使用PyTables创建的HDF5文件。我想获取一组行,将其作为数组处理,然后使用PyTables将其写回磁盘(更新行)。我想不出一种方法来干净地做到这一点。你能告诉我什么是完成这个的最好方法吗?我的数据:Symbol,date,price,var1,var2abcd,1,2.5,12,12.5abcd,2,2.6,11,10.2abcd,3,2.45,11,10.3defg,1,12.34,19.1,18.1defg,2,11.90,19.5,18.2defg,3,11.75,21,20.9defg,4,11.74,22.2,21.4我想读取与每个符号对应的行作为

python - 无法将 DataFrame 保存到 HDF5 ("object header message is too large")

我在Pandas中有一个DataFrame:In[7]:my_dfOut[7]:Int64Index:34entries,0to0Columns:2661entries,airplanetozoodtypes:float64(2659),object(2)当我尝试将其保存到磁盘时:store=pd.HDFStore(p_full_h5)store.append('my_df',my_df)我得到:File"H5A.c",line254,inH5Acreate2unabletocreateattributeFile"H5A.c",line503,inH5A_createunabletoc

python - 为什么排序后查询表会慢很多?

我有一个使用Pytables的Python程序并以这种简单的方式查询表:defget_element(table,somevar):rows=table.where("colname==somevar")row=next(rows,None)ifrow:returnelem_from_row(row)为了减少查询时间,我决定尝试用table.copy(sortby='colname')对表进行排序.这确实改善了查询时间(在where中花费),但增加了在next()中花费的时间内置功能提升了几个数量级!可能是什么原因?只有当表中有另一列时才会发生这种减慢,并且减慢会随着另一列的元素大小而

python - 在具有 500e6 行的 hdf5 pytable 中查找重复项

问题我有一个大型(>500e6行)数据集,我已将其放入pytables数据库中。假设第一列是ID,第二列是每个ID的计数器。每个ID计数器组合都必须是唯一的。我要查找的500e6行中有一个非唯一行。作为初学者,我做过这样的事情:index1=db.cols.id.create_index()index2=db.cols.counts.create_index()forrowindb:query='(id==%d)&(counts==%d)'%(row['id'],row['counts'])result=th.readWhere(query)iflen(result)>1:printr

python - PyTables 读取随机子集

是否可以从HDF5中读取行的随机子集(通过pyTables或者,最好是pandas)?我有一个包含数百万行的非常大的数据集,但只需要几千个样本进行分析。那么从压缩的HDF文件中读取呢? 最佳答案 使用HDFStore文档为here,压缩文档为here0.13支持通过构造索引进行随机访问In[26]:df=DataFrame(np.random.randn(100,2),columns=['A','B'])In[27]:df.to_hdf('test.h5','df',mode='w',format='table')In[28]:st

python - 使用 pytables 构建一个巨大的 numpy 数组

如何使用pytables创建一个巨大的numpy数组。我试过了,但给了我“ValueError:数组太大。”错误:importnumpyasnpimporttablesastbndim=60000h5file=tb.openFile('test.h5',mode='w',title="TestArray")root=h5file.rooth5file.createArray(root,"test",np.zeros((ndim,ndim),dtype=float))h5file.close() 最佳答案 顺应@b1r3k的响应,要创

python - Pandas 作为 Flask 应用程序的快速数据存储

Pandas运行转换、加载数据的速度和易用性给我留下了深刻印象,我想利用所有这些不错的属性(以及其他属性)来为一些大型数据集建模(~100-200k行,Flask在浏览器中提供数据集的View。我目前正在使用Postgres数据库来存储数据,但是数据的导入(来自csv文件)缓慢、乏味且容易出错,从数据库中取出数据并进行处理也不容易.数据一旦导入就永远不会改变(没有CRUD操作),所以我认为将它存储为多个pandasDataFrame(以hdf5格式存储并通过pytables加载)是理想的。问题是:(1)这是个好主意吗?需要注意什么?(例如,我不希望出现并发问题,因为DataFrame是

python - Pandas/PyTables 中的索引和数据列

http://pandas.pydata.org/pandas-docs/stable/io.html#indexing我对PandasHDF5IO中数据列的概念感到非常困惑。另外,在谷歌搜索上也找不到关于它的信息。由于我正在一个涉及HDF5存储的大型项目中深入研究Pandas,因此我想弄清楚这些概念。文档说:Youcandesignate(andindex)certaincolumnsthatyouwanttobeabletoperformqueries(otherthantheindexablecolumns,whichyoucanalwaysquery).Forinstances

python - PyTables 处理大小比内存大很多倍的数据

我试图了解PyTables如何管理大小大于内存大小的数据。这是PyTables(linktoGitHub)代码中的注释:#Nodesreferencedbyavariablearekeptin`_aliveNodes`.#Whentheyarenolongerreferenced,theymovethemselves#to`_deadNodes`,wheretheyarekeptuntiltheyarereferencedagain#ortheyarepreemptedfromitbyotherunreferencednodes.也可以在_getNode中找到有用的评论方法。看起来Py