问题标签 [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 回答
7326 浏览

python - 使用 chunksize 迭代地获取推断的数据帧类型

如何使用 pd.read_csv() 迭代地对文件进行分块并保留 dtype 和其他元信息,就像我一次读取整个数据集一样?

我需要读取一个太大而无法放入内存的数据集。我想使用 pd.read_csv 导入文件,然后立即将块附加到 HDFStore。但是,数据类型推断对后续块一无所知。

如果存储在表中的第一个块仅包含 int 并且后续块包含浮点数,则会引发异常。所以我需要首先使用 read_csv 遍历数据帧并保留最高推断类型。此外,对于对象类型,我需要保留最大长度,因为它们将作为字符串存储在表中。

有没有一种方法可以只保留这些信息而不读取整个数据集?

0 投票
1 回答
734 浏览

python - HDFStore 异常:找不到正确的原子类型:基本情况

我面临的问题与如何解决 HDFStore Exception: cannot find the correct atom type中提出的问题相同。

我将其简化为 pandas 文档Storing Mixed Types in a Table 中给出的示例。

这个例子的重点是appendaDataFrame有一些缺失值到 a HDFStore。当我使用示例代码时,我最终得到一个atom type error.

如果我按照链接帖子(杰夫的回答)中的建议强制执行dtype有问题的类型(实际上是object那些类型),我仍然会遇到相同的错误。我在这里想念什么?

感谢您的见解

解决了

我正在使用pandas0.10 并切换到0.11-dev。正如 Jeff 推断的那样,问题在于NaN 与 NaT

出品的前熊猫版

而后一个版本

0 投票
1 回答
1887 浏览

python - HDFStore:table.select 和 RAM 使用情况

我正在尝试从大约 1 GB 的 HDFStore 表中选择随机行。当我要求大约 50 个随机行时,RAM 使用量会激增。

我正在使用熊猫0-11-dev, python 2.7, linux64

在第一种情况下,RAM 使用量适合chunk

在第二种情况下,似乎整个表都加载到 RAM 中

在最后一种情况下,RAM 使用量符合等效chunk大小

我很困惑,为什么从 30 个随机行移动到 40 个随机行会导致 RAM 使用量如此显着增加。

请注意,该表在创建时已被索引,因此 index=range(nrows(table)) 使用以下代码:

感谢洞察

编辑回答 Zelazny7

这是我用来将 Train.csv 写入 train.h5 的文件。我使用来自How to Trouble-shoot HDFStore Exception: cannot find the correct atom type中 Zelazny7 的代码元素编写了这个

应用为

0 投票
1 回答
3002 浏览

pandas - 使用 pandas 将新列附加到 HDFStore

我正在使用 Pandas,并制作一个 HDFStore 对象。我计算了 500 列数据,并将其写入表格格式的 HDFStore 对象。然后我关闭文件,从内存中删除数据,执行接下来的 500 列(由递增的整数标记),打开存储,并尝试追加新列。然而,它不喜欢这样。它给了我一个错误

我假设它只允许附加更多行而不是列。那么如何添加更多列呢?

0 投票
1 回答
816 浏览

hadoop - Hadoop文件系统是物理文件系统还是虚拟文件系统

Hadoop 文件系统是物理文件系统还是虚拟文件系统

0 投票
1 回答
15885 浏览

python - 如何将大量数据附加到 Pandas HDFStore 并获得自然的唯一索引?

我正在将大量 http 日志 (80GB+) 导入 Pandas HDFStore 进行统计处理。即使在单个导入文件中,我也需要在加载内容时对其进行批处理。到目前为止,我的策略是将解析后的行读入 DataFrame,然后将 DataFrame 存储到 HDFStore 中。我的目标是让 DataStore 中的单个键的索引键是唯一的,但每个 DataFrame 都会再次重新启动它自己的索引值。我期待 HDFStore.append() 会有一些机制告诉它忽略 DataFrame 索引值并继续添加到我的 HDFStore 键的现有索引值但似乎找不到它。如何导入 DataFrames 并忽略其中包含的索引值,同时让 HDFStore 增加其现有索引值?下面的示例代码每 10 行批处理一次。自然实物会更大。

0 投票
1 回答
885 浏览

python - 将 MultiIndex Pandas DataFrame 添加到 PyTables HDFStore 的问题

我在一个充满栅格的列表上使用 for 循环。在每个栅格中,我提取一个数据数组,并且我想使用栅格的基本名称(日期)作为该数组的索引。为此,我使用 Pandas DataFrame 多索引。然后将包含新集合索引的数组附加到 HDFStore。接下来选择具有另一个日期的栅格

代码片段:

DataFrame 似乎没问题(顺便说一句,我怎样才能检索 MultiIndex?)。

但是在我检查 HDFStore 的那一刻,我的多索引似乎消失了,变成了“values_block_1”

通过阅读文档,我无法弄清楚如何正确存储或更改 HDFStore 中的 MultiIndex。有什么建议么?最终我想查询表为:

0 投票
1 回答
289 浏览

python - 如何从 HDFStore 中的框架中选择列

我在具有多索引的 HDFStore 中将 frame_table 称为“数据”。在 DataFrame 中,它可能看起来像这样

但现在我想在右侧添加一列范围(从 1 开始)。我的计划: 1. 使用范围创建新节点 2. 将两个节点连接到新节点中

我所做的,首先创建一个新节点(存储为 DataFrame),然后在重置列时连接

但现在这两个索引都是我数据的一部分(在第 0、1、2、10 列中):

我使用它尝试了以下操作,但这会导致空虚:

那么如何在不清空值的情况下选择这些列呢?

0 投票
2 回答
3240 浏览

python - MultiIndex DataFrames的Pandas HDFStore:如何高效获取所有索引

在 Pandas 中,有没有办法以表格格式有效地提取 HDFStore 中存在的所有 MultiIndex 索引?

我可以select()有效地使用where=,但我想要所有索引,而不想要任何列。我也可以select()用来iterator=True节省内存,但这仍然意味着从磁盘读取几乎所有的表,所以它仍然很慢。

我一直在寻找 store.root..table.* 的东西,希望我能得到一个索引值列表。我在正确的轨道上吗?

计划 B 是保留一个较短的 MultiIndex 数据帧,每次我附加主要数据帧时,它只包含附加的空数据帧。我可以检索它并获得比主要索引便宜得多的索引。虽然不优雅。

0 投票
1 回答
834 浏览

python - Problems with merging on-disk tables with millions of rows

TypeError: Cannot serialize the column [date] because its data contents are [empty] object dtype.

Hello SO! Currently have got two large HDFStore containing each one node, both the nodes doesn't fit in memory. The nodes don't contain NaN values. Now I would like to merge these two nodes using this. First tested for a small store where all the data fits in one chunk and this was working OK. But now for the case where it has to merge chunk by chunk and it's giving me the following error: TypeError: Cannot serialize the column [date], because its data contents are [empty] object dtype.

This is the code that I'm running.

Things that I noticed, it mentions that I'm on pandas_version:= '0.10.1', however my pandas version is 0.12.0rc1. Further more some more specific information of the nodes:

Since chunksize is 500000 and shape of node in Atemp is 823446, gives me that at least one chunk is merged. But I cannot figure out where the error is coming from and I also run out of clues trying to discover where it's exactly going wrong. Any help is very much appreciated..

EDIT

By reducing the chunksize of my test store it gives the same error. Of course not good, but now gives me possibility to share. Click here for the code + HDFStores.