python – PyTables读取随机子集

python – PyTables读取随机子集,第1张

概述是否可以从HDF5中读取行的随机子集(通过pyTables,或者最好是pandas)?我有一个非常大的数据集,有数百万行,但只需要几千个样本进行分析.从压缩的HDF文件中读取怎么样? 使用HDFStore文档是 here,压缩文档是 here 0.13支持通过构造索引进行随机访问 In [26]: df = DataFrame(np.random.randn(100,2),columns=['A' 是否可以从HDF5中读取行的随机子集(通过pytables,或者最好是pandas)?我有一个非常大的数据集,有数百万行,但只需要几千个样本进行分析.从压缩的HDF文件中读取怎么样?解决方法 使用hdfstore文档是 here,压缩文档是 here

0.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]: store = pd.hdfstore('test.h5')In [29]: nrows = store.get_storer('df').nrowsIn [30]: nrowsOut[30]: 100In [32]: r = np.random.randint(0,nrows,size=10)In [33]: rOut[33]: array([69,28,8,2,14,51,92,25,82,64])In [34]: pd.read_hdf('test.h5',where=pd.Index(r))Out[34]:            A         B69 -0.370739 -0.32543328  0.155775  0.9614218   0.101041 -0.0474992   0.204417  0.47080514  0.599348  1.17401251  0.634044 -0.76977092  0.240077 -0.15411025  0.367211 -1.02708782 -0.698825 -0.08471364 -1.029897 -0.796999[10 rows x 2 columns]

要包含其他条件,您可以这样做:

# make sure that we have indexable columnsdf.to_hdf('test.h5',format='table',data_columns=True)# select where the index (an integer index) matches r and A > 0In [14]: rOut[14]: array([33,33,95,69,21,43,58,58])In [13]: pd.read_hdf('test.h5',where='index=r & A>0')Out[13]:            A         B21  1.456244  0.17344343  0.174464 -0.444029[2 rows x 2 columns]
总结

以上是内存溢出为你收集整理的python – PyTables读取随机子集全部内容,希望文章能够帮你解决python – PyTables读取随机子集所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1207112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存