程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python(Pandas):将数据框存储在具有多索引的hdf5中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python(Pandas):将数据框存储在具有多索引的hdf5中?

开发过程中遇到Python(Pandas):将数据框存储在具有多索引的hdf5中的问题如何解决?下面主要结合日常开发的经验,给出你关于Python(Pandas):将数据框存储在具有多索引的hdf5中的解决方法建议,希望对你解决Python(Pandas):将数据框存储在具有多索引的hdf5中有所启发或帮助;

这是一个例子

In [8]: pd.__version__
Out[8]: '0.14.1'

In [9]: np.__version__
Out[9]: '1.8.1'

In [10]: import sys

In [11]: sys.version
Out[11]: '2.7.3 (default, Jan  7 2013, 09:17:50) \n[GCC 4.4.5]'

In [4]: df = DataFrame(np.arange(9).reshape(9,-1),index=pd.MultiIndex.from_product([List('abc'),date_range('20140721',periods=3)],names=['symbol','date']),columns=['value'])

In [5]: df
Out[5]: 
                   value
symbol date             
a      2014-07-21      0
       2014-07-22      1
       2014-07-23      2
b      2014-07-21      3
       2014-07-22      4
       2014-07-23      5
c      2014-07-21      6
       2014-07-22      7
       2014-07-23      8

In [6]: df.to_hdf('test.h5','df',mode='w',format='table')

In [7]: pd.read_hdf('test.h5','df',where='date=20140722')
Out[7]: 
                   value
symbol date             
a      2014-07-22      1
b      2014-07-22      4
c      2014-07-22      7

In [12]: pd.read_hdf('test.h5','df',where='symbol="a"')
Out[12]: 
                   value
symbol date             
a      2014-07-21      0
       2014-07-22      1
       2014-07-23      2

解决方法

我需要使用具有多个索引的大型数据框,因此我尝试创建一个数据框以了解如何将其存储在hdf5文件中。数据框是这样的:(在前2列中有multi索引)

Symbol    Date          0

C         2014-07-21    4792
B         2014-07-21    4492
A         2014-07-21    5681
B         2014-07-21    8310
A         2014-07-21    1197
C         2014-07-21    4722
          2014-07-21    7695
          2014-07-21    1774

我正在使用pandas.to_hdf,但在尝试选择组中的数据时会创建“固定格式存储”:

store.SELEct('table','Symbol == "A"')

它返回一些错误,主要问题是

TypeError: cAnnot pass a where specification when reading from a Fixed format store. this store must be SELEcted in its entirety

然后我试图像这样追加DataFrame:

store.append('ts1',timedata)

那应该创建一个表,但这给了我另一个错误:

TypeError: [unicode] is not implemented as a table column

所以我需要的代码将数据帧存储在一个表中HDF5格式并选择从单一索引的DATAS(为此目的,我发现这个代码:store.SELEct('timedata','Symbol == "A"')

大佬总结

以上是大佬教程为你收集整理的Python(Pandas):将数据框存储在具有多索引的hdf5中全部内容,希望文章能够帮你解决Python(Pandas):将数据框存储在具有多索引的hdf5中所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。