在HDF5熊猫中存储.csv

时间:2015-06-26 15:02:40

标签: 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', complevel=9, data_columns = True, append = True)
到目前为止,有21列和大约1200万行,我将每月增加大约100万行。

  • 1日期列[我将其转换为datetime64]
  • 2个日期时间列(每行一个,另一个在大约70%的时间内为空)[我将其转换为datetime64]
  • 9个文本列[我将这些列转换为分类,节省了大量空间]
  • 1个浮动列
  • 8个整数列,其中3个最大可能达到几百个,另外5个只能是1或0个值

我制作了一个漂亮的小型h5表,它是完美的,直到我尝试向它添加更多数据(实际上只有一天的数据,因为我收到了每天的原始.csv文件)。虽然我使用了相同的ipython笔记本,但我收到的错误显示每个列的dtypes不匹配。

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

0 个答案:

没有答案