首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像csv文件一样读取h5文件

如何像csv文件一样读取h5文件
EN

Stack Overflow用户
提问于 2016-11-11 14:58:29
回答 1查看 709关注 0票数 0

我有这样一个算法,用于csv文件对象。

代码语言:javascript
复制
#diplay_id, ad_id, clicked(1 or 0)
colls = {'display_id':np.int32,
         'ad_id':np.int32,
         'clicked':bool}
trainData = pd.read_csv("trainData.csv")

for did, ad, c in trainData.itertuples():
    print did + ad + c #example

但是,现在我有了一个'.h5‘文件,我想在算法中使用它。我读的文件如下;

代码语言:javascript
复制
store = pd.HDFStore('data.h5')

但正如我所知,HDFStore返回np数组。你知道在算法中使用数据文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-11 16:12:27

本例中的主要区别在于,HDF5文件可能包含多个DFs/table,因此您必须始终指定一个键(标识符)。

下面是一个小演示:

代码语言:javascript
复制
In [14]: fn = r'C:\Temp\test_str.h5'

In [15]: store = pd.HDFStore(fn)

In [16]: store
Out[16]:
<class 'pandas.io.pytables.HDFStore'>
File path: C:\Temp\test_str.h5
/test            frame_table  (typ->appendable,nrows->10000,ncols->4,indexers->[index],dc->[a,c])

在这种情况下,只有一个DF (key=/test)存储在这个HDF5文件中。

假设所有HDF5文件只有一个DF (每个文件只有一个键),您可以通过选择第一个键来动态处理它们:

代码语言:javascript
复制
In [17]: store.keys()
Out[17]: ['/test']

In [18]: key = store.keys()[0]

In [19]: key
Out[19]: '/test'

In [20]: store[key].head()
Out[20]:
        a       b       c                                                txt
0  689347  129498  770470  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
1  954132   97912  783288  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
2   40548  938326  861212  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
3  869895   39293  242473  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
4  938918  487643  362942  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40550631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档