问题标签 [hdfstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - HDFStore:选择列是否在数组中
我有一张桌子,其中包括以下列:
现在我想选择bar
具有两个值之一的那些:
但是我得到了这个异常,我暗示我不能使用“bar”作为变量。
所有变量引用必须是对轴的引用(例如“索引”或“列”)或 data_column 当前定义的引用是:索引、列
但它不是一个专栏吗?
python - pandas.HDFStore:如何修改现有商店的“data_columns”?我想为不在数据列中的列添加索引
我使用 pandas 创建了一个大型(120GB;10 亿行)HDF5 文件。在最初创建 hdf 文件后,我像这样添加到文件中:
我故意设置 data_columns=[] 以避免在创建期间建立索引。现在我有了 HDF 文件,我想为几列添加索引(例如,columns_to_index=['A', 'B', 'C'])
不知何故,我现在确实有 ptdump data_columns:=['A']
,但我不记得那是怎么发生的。(也许最初的 df 是用不同的参数编写的(我连续几天添加到 hdfstore 并且我可能已经改变了一些东西)。无论如何,无论如何,不管它是如何创建的,我想索引额外的列。
显然,简单地调用mystore.create_table_index('all', columns=['A', 'B', 'C'], optlevel=9, kind='full')
是行不通的。我第一次运行它时,它搅动了一个小时,并在文件大小上增加了 2 GB(检查元数据显示块大小增加了),但我没有所有 3 个索引(只是“A”的索引)。如何为所有 3 列生成索引?
我还注意到 ptdump 中的这一行——对于我想要索引的项目,我有“non_index_axes”似乎令人不安:non_index_axes := [(1, ['A', 'B', 'C'])]
如果无法在 pandas 中创建索引,我将不胜感激有关如何直接在 pytables 中执行此操作的建议。(例如,我是否需要先删除任何现有索引?以及如何修改“non_index_axes”和“data_coumns”)
编辑:预期有关我的用例的问题,这是我要完成的工作的总体情况:
从 CSV 文件中读取 120 GB 的数据。每个文件代表一天的财务数据,由 100,000 行组成,每行大约有十几列。我只是将每一行按顺序存储在 HDF5 文件中。我希望这个初始阶段能够快速运行,因此我关闭了索引。目前,我在 6 秒内读取和解析每个 CSV 文件,并且如上所述存储到 HDF5 文件中只需 1.5 秒。
索引少数(不是全部)列以支持各种查询,例如获取第 1 列中具有给定字符串的所有项目以及第 2 列中特定范围内的日期。
随着时间的推移,我每天都会解析一个新的 CSV 文件并将其添加到 HDF5 文件中。我预计指数会继续更新。
(根据我的访问模式,我存储行的顺序(当前,按日期)可能仍然是检索的最佳顺序。在大多数查询中,我最终可能还需要按不同的列排序,在这种情况下,我认为在解析和附加每个 CSV 文件后,我需要重新排序表格。)
目前我被困在第 2 步,生成列索引。
python - HDF5:有没有办法重命名现有 HDF5 表中的列名?
我使用 Pandas 创建了一个大型索引 HDF5 表。我想重命名表中 12 列中的 2 列。我不希望重建/重新索引表。
这可以在不复制所有数据(140GB)的情况下完成吗?我希望文件中只有几块元数据可以用正确的命令轻松换出。
这对我来说是因为我有一些带有空格的“非自然”列名,并且在尝试运行 select 语句之前没有意识到这是一个问题。
python - 写入多个 HDF5 文件时,Windows 中打开的文件过多
我的问题是如何在编写 HDF5 文件后无限期关闭它们?
我正在尝试将数据保存到 HDF5 文件 - 大约有 200 个文件夹,每个文件夹包含今年每天的一些数据。
当我在 iPython 控制台中使用带有以下代码的 pandas 检索和保存数据HDFStore
时,该功能会在一段时间后自动停止(没有错误消息)。
当我尝试使用相同的脚本再次下载数据时,它显示:
[Errno 24] 打开的文件太多:...
有一些帖子建议在 Linux 中使用ulimit -n 1200来解决这个问题,但不幸的是我使用的是 Windows。
此外,我想我已经使用 withclosure 明确地关闭了文件,尤其是在Method 2中。为什么 iPython 仍然将这些文件视为打开的?
我的循环如下所示:
hadoop - 如何直接在hdfs上更改块大小
我的数据已经在块大小为 256mb 的 hdfs 上。但必须将此块大小更改为 128 MB。那么如何直接在hdfs上改变块大小。
我试过了
但我的数据已经在 hdfs 上
pandas - 如何将多个 pandas 数据帧组合到一个键/组下的 HDF5 对象中?
我正在从 800 GB 的大型 csv 文件中解析数据。对于每一行数据,我将其保存为 pandas 数据框。
现在,我想将其保存为 HDF5 格式,并像查询整个 csv 文件一样查询 h5。
到目前为止,我的方法是:
也就是说,我尝试将每个数据帧保存df
到一个键下的 HDF5 中。但是,这失败了:
所以,我可以尝试先将所有内容保存到一个熊猫数据框中,即
现在存储为 HDF5 格式
但是,我认为我没有将所有 csv 行保存total_df
为 HDF5 格式的 RAM/存储。
那么,如何将每个“单行”df 附加到 HDF5 中,使其最终成为一个大数据帧(如原始 csv)?
编辑:这是具有不同数据类型的 csv 文件的具体示例:
python - HDF5 min_itemsize 错误:ValueError: Trying to store a string with len [##] in [y] column but this column has a limit of [##]!
使用后出现以下错误pandas.HDFStore().append()
我正在创建一个 pandas DataFrame 并将其附加到 HDF5 文件中,如下所示:
我收到上面的错误:“ValueError: Trying to store a string with len [150] in [values_block_0] column but this column has a limit of [127]!”
之后,我执行代码:
哪个输出
values_block_0
和是什么values_block_1
?
所以,按照这个 StackOverflow Pandas pytable: how to specify min_itemsize of the elements of a MultiIndex,我试过了
这不起作用——现在我收到这个错误:
我究竟做错了什么?
编辑:此代码产生ValueError: min_itemsize has the key [values_block_0] which is not an axis or data_column
错误filename.py
这是完整的错误:
python - PyTables 索引与 pandas HDFStore (PyTables) 索引相比如何
PyTables 库和 HDFStore 对象(基于 PyTables)都为用户提供索引。
仅对于 PyTables,我们创建一个 HDF5 文件如下(来自文档):
用户使用“Column.create_index()”索引列
例如:
对于后一种情况,用户实例化一个 HDFStore 对象,然后选择要索引的列。
在这里,我们对两列进行索引,这应该会优化我们的搜索。
两个问题:
(1)我实际上不清楚PyTables示例(第一个示例)中如何设置索引(索引)。上面没有定义列。在我看来,有三个字段:身份、身份证号码、速度。假设我想为速度和身份建立一个索引。如何做到这一点?
(2) 基于 pandas 的索引和基于 PyTables 的索引之间是否有任何基准?一个比另一个快吗?一个是否比另一个占用更多的磁盘空间(即更大的 HDF5 文件)?
python - Pandas HDF 文件大小在读写之间存在显着差异
我有一个 HDF5 文件 test1.h5 生成 py Pandas df.to_hdf("test1.h5","t") 调用。文件大小为 27M,只有一个键是 pandas 数据框。
数据框的大多数 dtypes 是 float32,带有一个 int 和 string
令我困惑的是,如果我再次将数据帧保存到另一个 HDF5 文件 test2.h5,它只有 9.7M:
是什么导致读取和写入之间的大小不同?谢谢你。
python - 如何在 Python 中查找 HDF5 文件组/键?
假设有人给了我一个随机的 HDF5 文档。我想编写一个函数来检查使用的组/“键”是什么。
以熊猫为例HDFStore()
。对于许多检索 HDF5 数据的方法,需要知道密钥,例如pandas.HDFStore.get()
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.HDFStore.get.html
如果不是先验已知的,那么检查密钥身份的最有效方法是什么?