首页 文章
  • 31 votes
     answers
     views

    改善pandas(PyTables?)HDF5表写性能

    我已经使用大熊猫进行研究了大约两个月,效果很好 . 有了大量的中型跟踪事件数据集,pandas PyTables(HDF5接口)在允许我使用我所熟悉和喜爱的所有Python工具处理异构数据方面做了大量工作 . 一般来说,我在PyTables中使用Fixed(以前称为“Storer”)格式,因为我的工作流程是一次写入,多次读取,并且我的许多数据集的大小都是这样的,我可以将50-100个数据集加载到内...
  • 0 votes
     answers
     views

    熊猫进口excel出口HDF5

    使用pandas和PyTables . 首先从excel导入包含整数和浮点列的表,以及包含字符串甚至元组的其他列 . excel导入中的选项数量有限,遗憾的是,与csv导入过程不同,数据类型必须在导入后从其推断类型转换,并且不能在过程中指定 . 话虽这么说,所有非数字显然都是作为unicode文本导入的,这与后来导出到HDF5不兼容 . 有没有一种简单的方法可以将所有unicode列(以及所有列...
  • 13 votes
     answers
     views

    HDF5文件和PyTables文件之间的区别

    HDF5 文件和 PyTables 创建的文件之间有区别吗? PyTables 有两个函数 .isHDFfile() 和 .isPyTablesFile() ,表明两种格式之间存在差异 . 我已经在谷歌上做了一些调查,并且已经认识到PyTables是 Build 在HDF之上的,但我无法找到更多 . 我对互操作性,速度和开销特别感兴趣 . 谢谢 .
  • 0 votes
     answers
     views

    将NumPy数组添加到PyTables中的现有HDF5文件中?

    我有两个存储在内存中的切片Numpy数组,比如a和b,形状1 * 480 * 640,如何将它们添加到PyTables中的现有HDF5文件中?现有的HDF5文件有三个阵列:n1,n2,n3,我希望新的HDF5文件有5个阵列:n1,n2,n3,a,b . 谢谢!
  • 21 votes
     answers
     views

    在HDF5(PyTables)中存储numpy稀疏矩阵

    我在使用PyTables存储numpy csr_matrix时遇到问题 . 我收到这个错误: TypeError: objects of type ``csr_matrix`` are not supported in this context, sorry; supported objects are: NumPy array, record or scalar; homogeneous lis...
  • 2 votes
     answers
     views

    Pytables EArray vs速度/效率表

    我试图弄清楚在pytables中存储时间 - 值对的最有效方法是什么 . 我正在使用pytables,因为我正在处理巨大的数据量 . 我需要对数据进行计算(平均值,插值等) . 我不知道提前的行数 . 我知道可以附加EArray,就像表格一样 . 是否有理由选择一个而不是另一个? 鉴于我简单的数据结构(同构时间 - 值对),我认为EArray会更快/更有效,但是pytables创建者自己的以下引用...
  • 11 votes
     answers
     views

    如何在pytables / hdf5中存储宽表

    我有来自csv的数据,它有几千列和一万(左右)行 . 在每列中,数据具有相同的类型,但不同的列具有不同类型的数据* . 以前我一直在从numpy和磁盘上存储数据,但它很慢,特别是因为通常我想加载一些列的子集而不是所有列 . 我想使用pytables将数据放入hdf5,我的第一种方法是将数据放在一个表中,每个csv列有一个hdf5列 . 不幸的是,这不起作用,我假设因为512(软)列限制 . 存储此...
  • 0 votes
     answers
     views

    Pandas HDFStore并发多次写入

    如何异步将数据写入hdfstore文件 . 我试过但是得到例外 /usr/share/nginx/www/test/59ece246b82453024e2df1ec.h5 Traceback(最近一次调用最后一次):文件“/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py”,第536行,在run result = self._run...
  • 2 votes
     answers
     views

    将大量数据附加到一个表(HDF5)数据库,其中database.numcols!= newdata.numcols?

    我试图将一个大型数据集(> 30Gb)附加到现有的pytables表 . 该表为N列,数据集为N-1列;在我知道其他N-1列之后计算一列 . 我正在使用 numpy.fromfile() 将数据集的块读入内存,然后将其附加到数据库 . 理想情况下,我想将数据粘贴到数据库中,然后计算最终列,并使用 Table.modifyColumn() 完成操作 . 我已经考虑将 numpy.zeros((...
  • 3 votes
     answers
     views

    “通过PyTables或PyHDF将”大文本文件读入hdf5?

    我正在尝试使用SciPy进行一些统计,但我的输入数据集非常大(~1.9GB)并且采用dbf格式 . 该文件足够大,当我尝试使用genfromtxt创建数组时,Numpy会返回错误消息 . (我有3GB内存,但运行win32) . 即: Traceback (most recent call last): File "<pyshell#5>", line 1,...
  • 11 votes
     answers
     views

    从Oracle读取包含数百万行的大表并写入HDF5

    我正在使用具有数百万行和100列的Oracle数据库 . 我试图使用带有索引的某些列的pytables将这些数据存储在HDF5文件中 . 我将在pandas DataFrame中读取这些数据的子集并执行计算 . 我尝试过以下方法: 下载表,使用实用程序到csv文件中,使用pandas通过chunk读取csv文件块,并使用 pandas.HDFStore 附加到HDF5表 . 我创建了一个dtype...
  • 2 votes
     answers
     views

    如何确保大型HDF5中的唯一行

    我正在努力在HDF5表中实现一组相对较大(5,000,000且不断增长)的时间序列数据 . 我需要一种方法来每天删除重复数据,每天一次“运行” . 由于我的数据检索过程目前存在,因此在数据检索过程中写入重复项要比确保没有重复项更容易 . 从pytable中删除重复的最佳方法是什么?我的所有阅读都指向我将整个表导入到pandas中,并获得一个唯一值的数据框,并通过在每次运行数据时重新创建表来将其写回...
  • 2 votes
     answers
     views

    Pandas,包含不同数字列的大文件,在内存中附加

    我想在hdf5文件中维护一个大的PyTable . 通常,当新数据出现时,我会附加到现有表: store = pd.HDFStore(path_to_dataset, 'a') store.append("data", newdata) store.close() 但是,如果旧存储数据的列和传入的新数据的列部分仅重叠,则返回以下错误: Exception: c...
  • -1 votes
     answers
     views

    将ndarray存储在PyTable中(以及如何定义Col() - 类型)

    TL; DR:我有一个带有float32 Col的PyTable,在写入numpy-float32-array时会出错 . (How) can I store a numpy-array (float32) in the Column of a PyTables table? 我是PyTables的新手 - 按照TFtables(在Tensorflow中使用HDF5的lib)的建议,我用它来...
  • 5 votes
     answers
     views

    使用pytables或pandas删除表或节点后释放hdf5磁盘内存

    我正在使用带有pandas / pytables的HDFStore . 删除表或对象后,hdf5文件大小不受影响 . 当将额外的对象添加到存储中时,似乎此空间会被重用,但如果浪费大的空间则可能会出现问题 . 我没有在pandas或pytables API中找到任何可能用于恢复hdf5内存的命令 . 您知道在hdf5文件中改进数据管理的任何机制吗?
  • 66 votes
     answers
     views

    使用HDF5进行大型阵列存储(而不是平面二进制文件)是否存在分析速度或内存使用优势?

    我正在处理大型3D阵列,我经常需要以各种方式进行切片以进行各种数据分析 . 典型的“立方体”可以是~100GB(将来可能会变大) 似乎python中大型数据集的典型推荐文件格式是使用HDF5(h5py或pytables) . 我的问题是:使用HDF5存储和分析这些立方体而不是将它们存储在简单的平面二进制文件中是否有任何速度或内存使用效益? HDF5是否更适合表格数据,而不像我正在使用的大型数组?我...
  • 3 votes
     answers
     views

    写入hdf时的Pandas / Pytable内存开销

    我使用pandas和hdf5文件来处理大量数据(例如10GB甚至更多) . 我想使用表格格式,以便在阅读时能够有效地查询数据 . 但是,当我想将数据写入hdf存储(使用DataFrame.to_hdf())时,它会产生巨大的内存开销 . 请考虑以下示例: import pandas as pd import numpy as np from random import sample nrows ...
  • 2 votes
     answers
     views

    阅读Pandas HDFStore时出错(使用PyTables)

    我有一个pandas HDFStore对象(pandas使用PyTables实现HDF5,如果这是相关的)与 mydata DataFrame( store["mydata"] = mydata ),并有一些代码定期将数据附加到 mydata DataFrame . 当我尝试访问该HDFStore时,我收到此错误 . //anaconda/lib/python2.7/sit...
  • 0 votes
     answers
     views

    完整列的有效计算(pytables,hdf5,numpy)

    我有一个简单的HDF5文件(由PyTables创建),有十列和100000行 . 对于每个值,我必须应用一个简单的线性方程,每列使用不同的参数并将内容写入CSV . 我天真的做法是在 table 上循环: for row in table.iterrows(): print "%f,%f,..." % (row['a'] * 1.0 + 2.0, row['b'] * ...
  • 6 votes
     answers
     views

    Pytables / Pandas:组合(读取?)按行分割的多个HDF5存储

    在“一次编写,多次读取”工作流程中,我经常使用FastExport实用程序解析从Teradata转储的大型文本文件(20GB-60GB),并使用Pandas将它们加载到Pytables中 . 我正在使用多处理来分块文本文件并将它们分发到不同的进程,以便根据每行大约5MM的行数来编写.H5文件,以支持并行写入 . 对于并行编写多个hdf5文件大约12分钟这相当快,相比之下,为25MM行x64列编写单...

热门问题