问题标签 [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.

0 投票
1 回答
1052 浏览

python - 追加失败时如何有效地重建pandas hdfstore表

我正在使用 pandas 中的 hdfstore 来处理正在进行的迭代过程中的数据帧。在每次迭代中,我都会追加到 hdfstore 中的一个表。这是一个玩具示例:

hdfstore_append 函数防止 hdfstore.append 抛出的各种异常,并在必要时重建表。这种方法的问题是当存储中的表变得非常大时它会变得非常慢。

有没有更有效的方法来做到这一点?

0 投票
0 回答
69 浏览

python - 在 HDFStore 的排序列中查找规则间隔的值转换

问题

我想制作一个工具来查找 Pandas HDFStore 的排序列中的值转换边界。对于广泛的数据分布,我想尽可能快地做到这一点。

例子

给定一个大的排序列

我将选择几个固定间隔的位置

从这些我想向右移动到值转换的下一个点,即下一个值与当前值不同的位置

无论我得到的数据分布如何,我都想快速而稳健地做到这一点。

一些担忧

  • 从磁盘加载我的数据可能很大且成本很高。我不想将整个事情加载到内存中
  • 相反,我怀疑一次加载一个元素会非常慢,所以我可能想要拉入 100 行或其他内容的块。这里有什么好的经验法则?
  • 我可能有很多专栏。鉴于我只关心一列,我如何最好地避免不必要的成本(我知道 HDFStore 是面向行的,不过,这里可能有一些聪明的东西)
  • 我可能会遇到很长的排序序列(数十万个元素)
0 投票
1 回答
1342 浏览

python - Pandas HDFStore 奇怪的行为

我对此感到非常困惑,我有两个脚本从同一个笔记本服务器运行。我在同一个文件夹中有一个 HDFStore,但是对于一个脚本,它看起来是空的,而对于另一个则不是。这是在两个笔记本中运行的相同代码:

返回 NB 1: 'E:\DoingDataScience\Identify\Scripts'

返回 NB 2: 'E:\DoingDataScience\Identify\Scripts'

返回注意 1:

返回注意 2:

所有的情况看起来都一样。它是否跟踪 Pandas DF 的来源?我认为这可能是由于 NB 1 已经打开了该文件,因为 NB 1 创建了它。但是杀死 NB 1 并重新启动 NB 2 也没有做任何事情。

编辑:添加 os.stats:

NB 1 和 NB 2 两者:

更新:现在重新启动后我收到一个新错误:

HDF5ExtError:HDF5 错误回溯

文件“C:\aroot\work\hdf5-1.8.15-patch1\src\H5F.c”,第 604 行,在 H5Fopen 中无法打开文件文件“C:\aroot\work\hdf5-1.8.15-patch1\ src\H5Fint.c",第 1085 行,在 H5F_open 中无法读取超级块文件 "C:\aroot\work\hdf5-1.8.15-patch1\src\H5Fsuper.c",第 294 行,在 H5F_super_read 中无法加载超级块文件“C:\aroot\work\hdf5-1.8.15-patch1\src\H5AC.c”,第 1320 行,在 H5AC_protect H5C_protect() 中失败。文件“C:\aroot\work\hdf5-1.8.15-patch1\src\H5C.c”,第 3574 行,在 H5C_protect 中无法加载条目文件“C:\aroot\work\hdf5-1.8.15-patch1 \src\H5C.c",第 7954 行,在 H5C_load_entry 中无法加载条目文件 "C:\aroot\work\hdf5-1.8.15-patch1\src\H5Fsuper_cache.c",第 476 行,在 H5F_sblock_load 截断文件中:eof = 800, sblock->base_addr = 0,

HDF5 错误回溯结束

无法打开/创建文件“data_test.h5”

0 投票
1 回答
521 浏览

python-3.x - 如何在写入熊猫 HDFStore 时处理 min_itemsize 异常

我正在使用 pandas HDFStore 来存储我从数据创建的 dfs。

我收到了错误:

我发现可以为所涉及的列设置 min_itemsize 但这不是一个可行的解决方案,因为我不知道我将遇到的最大长度以及我将遇到问题的所有列。

是否有解决方案可以自动捕获此异常并处理它发生的每个项目?

0 投票
1 回答
1598 浏览

python - Pandas Hdf 获取表格信息

有没有办法使用 pandas HDF 商店获取 HDF 表的信息?

例如在 SQL 中有:

我想阅读基本表格大小而不必加载表格本身。

0 投票
1 回答
62 浏览

compression - Apache Hadoop:将压缩数据插入 HDFS

我需要将 100 个文本文件上传到 HDFS 以使用 Apache Pig 进行一些数据转换。

在您看来,最好的选择是什么:

a) 压缩所有文本文件,只上传一个文件,

b) 单独加载所有文本文件?

0 投票
1 回答
1148 浏览

python - 在 HDFStore 组中存储多个对象

我想在 HDFStore 中存储多个对象,但我想通过分组来组织它。类似于以下内容:

0 投票
0 回答
307 浏览

python - pandas.HDFStore.append_to_multiple 和 pandas.MultiIndex

我使用 将 DataFrame 写入两个表pandas.HDFStore.append_to_multiple,然后用 将其读回pandas.HDFStore.select_as_multiple,但我得到了一个带有额外行的 DataFrame。

然后我又读了一遍:

我希望df2相等df,但它有额外的行。通过调试器,我在 pytables.py 中看到以下行:

这是 DataFrame 重新索引不正确的地方。这似乎是由于原始 DataFrame 的索引有重复,但这是我的数据的现实。此函数是否要求 DataFrame 没有重复的索引值?有没有一种简单的方法可以向 MultiIndex 添加另一个级别以使索引没有重复?

如果我删除它可以正常工作dropna=True

Windows x64 Python 2.7 熊猫 0.18.1

0 投票
1 回答
1121 浏览

python - Pandas HDFStore.create_table_index 不提高选择查询速度,寻找更好的搜索方式

我创建了一个 HDFStore。HDFStore 包含一个组,该组df是一个有 2 列的表。第一列是 a string,第二列是DateTime(将按排序顺序)。商店已使用以下方法创建:

创建 HDF5 文件后,我将使用以下方法查询表:

所以,基本上这需要 13.2 秒,然后我使用

然后我又做了同样的查询,这次我得到了以下信息:-

从上面看,在我看来,性能并没有显着提高。所以,我的问题是,我还能在这里做些什么来让我的查询更快,或者我做错了什么?

0 投票
2 回答
6982 浏览

python - 如何将 Pandas DataFrame 存储为 HDF5 PyTables 表(或 CArray、EArray 等)?

我有以下熊猫数据框:

现在,我可以使用HDFStoredf对象写入文件(例如将键值对添加到 Python 字典):

http://pandas.pydata.org/pandas-docs/stable/io.html

当我查看内容时,这个对象是一个frame.

输出

但是,为了使用索引,应该将其存储为一个table对象。

我的方法是尝试HDFStore.put()

但是,这失败并出现错误:

如何将 Pandas Dataframes 保存为 PyTables 表?