Pandas 在HDF5中存储.csv

Pandas 在HDF5中存储.csv,pandas,hdf5,Pandas,Hdf5,我在试验HDF,它看起来非常棒,因为我的数据没有标准化,它包含很多文本。我喜欢在将数据读入熊猫时能够进行查询 loc2 = r'C:\\Users\Documents\\' (my dataframe with data is called 'export') hdf = HDFStore(loc2+'consolidated.h5') hdf.put('raw', export, format= 'table', complib= 'blosc', comple

我在试验HDF,它看起来非常棒,因为我的数据没有标准化,它包含很多文本。我喜欢在将数据读入熊猫时能够进行查询

    loc2 = r'C:\\Users\Documents\\'
    (my dataframe with data is called 'export')
    hdf = HDFStore(loc2+'consolidated.h5')
    hdf.put('raw', export, format= 'table', complib= 'blosc', complevel=9, data_columns = True, append = True)
到目前为止,共有21列和大约1200万行,我将每月添加大约100万行

  • 1个日期列[我将其转换为datetime64]
  • 2个Datetime列(每行一个,另一个大约70%的时间为空)[我将其转换为datetime64]
  • 9个文本列[我将其转换为分类,这节省了大量空间]
  • 1浮子柱
  • 8个整数列,其中3个最多可以达到几百个,其他5个只能是1或0个值
我制作了一个很好的小型h5表,它非常完美,直到我尝试向它添加更多数据(实际上,自从我每天收到原始.csv文件以来,只需要一天的数据)。我收到的错误表明,尽管我使用了相同的ipython笔记本,但每个列的数据类型都不匹配

  • 我的hdf.put代码正确吗?如果我有append=True,这是否意味着它将在文件不存在时创建该文件,而在数据存在时追加该数据?我基本上每天都会在这个文件后面添加内容
  • 对于只包含1或0的列,我应该指定像int8或int16这样的数据类型吗?这会节省空间还是应该将其保持在int64?看起来我的一些列是随机浮点64(虽然没有小数)和int64。我想我需要为每个列分别指定数据类型。有什么建议吗
  • 我不知道blosc压缩是什么。那是最有效的吗?这里有什么建议吗?此文件主要用于将数据快速读入数据框,以连接到Tableau连接的其他.csv文件