- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我同时使用 pandas 和 pytables (3.1.1)。问题是我已经用 pytables 打开了一个 HDF5 文件,当我尝试用 pandas 创建一个新的 HDF5Store 时
hdf5store = HDFStore(...)
我收到以下错误:
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 281, in __init__
self.open(mode=mode, warn=False)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 387, in open
self._handle = h5_open(self._path, self._mode)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/pandas/io/pytables.py", line 154, in h5_open
return tables.openFile(path, mode)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/tables/_past.py", line 35, in oldfunc
return obj(*args, **kwargs)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/tables/file.py", line 296, in open_file
_FILE_OPEN_POLICY))
ValueError: The file '/tmp/temp_folder_for_pypet_tests/experiments/tests/HDF5/merge1.hdf5' is already opened. Please close it before reopening. HDF5 v.1.8.4-patch1, FILE_OPEN_POLICY = 'strict'
我怎样才能告诉 pandas 不要重新打开文件,而只是使用已经给定的文件句柄?
非常感谢!
最佳答案
您需要显式传递 mode='r'
以强制以只读模式打开。默认是以 mode='a'
(追加模式)打开。
最新版本的 PyTables 变得更加严格,只允许一个文件以写入模式打开一次,即使跨多个进程/线程也是如此。这是为了避免文件可能损坏。
如果你有最新的 HDF5 库版本,你可以在只读模式下多次打开文件(否则你会得到一个不同的异常)。
关于python - 同时使用 pandas 和 PyTables (3.1.1),重新打开一个已经打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780134/
当使用字典或类作为模式定义调用 createTable() 时,PyTable 列似乎按字母顺序排列。我的需要是建立一个特定的顺序,然后使用 numpy.genfromtxt() 从文本中读取和存储我
我有一个查询,它按以下格式返回约 100 万行: data = [[i['field1'], i['field2']] for i in tbl.where(conditions)] 并且花费了超过
我正在分析一些成像数据,这些数据由像素强度的大型 3 维阵列组成,尺寸为 [frame, x, y]。由于这些通常太大而无法保存在内存中,因此它们作为 PyTables 数组驻留在硬盘上。 我想做的是
我愿意: sudo pip install --upgrade tables 我得到: /usr/bin/ld: cannot find -lhdf5 collect2: ld returne
我有包含多个组的 HDF5 文件,其中每个组包含一个包含 >= 2500 万行的数据集。在模拟的每个时间步长,每个智能体都会输出他/她在该时间步长感知到的其他智能体。场景中有约 2000 个智能体和数
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我在 python 中通过 pandas 使用 pytables。我正在尝试使用 pandas.read_hdf() 加载文件,但出现了这个讨厌的错误。我希望我没有丢失 1.1 GB 不可替代的数据。
有没有办法创建具有特定列顺序的 PyTable? 默认情况下,在调用 createTable() 时使用字典或类作为架构定义时,列按字母顺序排列。我的需要是建立一个特定的顺序,然后使用 numpy.g
是否可以使用 Pytables(或 Pandas)来检测 hdf 文件的表是否包含特定列?要加载我使用的 hdf 文件: from pandas.io.pytables import HDFStore
我有一个包含 Time32 列和大量行的表。我的问题是下一个。 当我的表达到千万行时,我想开始归档早于指定值的每一行。为了创建查询,我将使用 Time32 列,它表示行中收集的数据的时间戳。因此,使用
考虑以下代码: import os import numpy as np import tables as tb # Pass the field-names and their respective
我在 Pytables 中有一个数据集,它看起来像 class myData(IsDescription): date = StringCol(16) item = Int32Col(
我正在尝试将 Python 线程模块与 PyTables 一起使用。有人能告诉我 PyTabes 是否是线程安全的吗?我收到一些错误,似乎与线程相关。 谢谢,标记 最佳答案 来自此处的 PyTable
我将每日股票数据作为使用 PyTables 创建的 HDF5 文件。我想获取一组行,将其作为数组处理,然后使用 PyTables 将其写回磁盘(更新行)。我想不出一种方法来干净地做到这一点。你能告诉我
是否可以从 HDF5 中读取行的随机子集(通过 pyTables 或者,最好是 pandas)?我有一个包含数百万行的非常大的数据集,但只需要几千个样本进行分析。那么从压缩的 HDF 文件中读取呢?
我试图了解 PyTables 如何管理大小大于内存大小的数据。这是 PyTables ( link to GitHub ) 代码中的注释: # Nodes referenced by a variab
我的 pytables 中有一个包含 300 多列的数据集,我希望能够轻松选择不同的子集。似乎没有一个非常优雅的解决方案,或者我缺少什么? 我也很高兴有一种方法来创建另一个表,该表只是对原始表中的选择
以下代码提供了我需要的功能;但是,对于包含 200 个变量和 64000 行的表,需要 10 多秒的时间。有没有更有效的方法来创建与列名匹配的变量命名空间? strExec = "a = table[
我在 pytables 中有很长的数组和时间值对表。我需要能够对此数据执行线性插值和零阶保持插值。 目前,我正在使用 pytables 的按列切片表示法将列转换为 numpy 数组,然后将 numpy
我不确定我的想法是否可行,我需要有使用 HDF5/PyTables 经验的人的帮助。 场景是这样的: 假设我们有一个进程、一台机器或一个连接等,正在获取数据并以 HDF5/PyTable 格式存储。我
我是一名优秀的程序员,十分优秀!