内存不足,正在筛选pandas中的HDF5表

2024-09-30 20:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个4+gbhdf5表,其中的行对应于树状结构中的节点。有3个显著的列:namesurnameweight。姓氏记录给定节点的父节点的名称,name是当前节点的名称(相对于父节点),weight是节点的权重。名称和姓氏都是字符串,姓氏+名称构成此节点的唯一标识符。最后,对于任何给定的节点,其子节点的权重严格小于其自身的权重。你知道吗

我的问题是,我想过滤这个表以找到所有权重小于给定阈值M的节点,但是如果一个节点存在于我的最终集合中,那么它的父节点不应该在集合中。你知道吗

我已经用pd.read_hdf(,where = ['weight < M'])得到了所有的节点,它们的权重都小于我的条件,但是我不知道如何满足下半部分。由于表本身是巨大的,所以这也需要大部分内存来完成。你知道吗

编辑:我从来没有在这里问过一个问题,所以如果你需要更清楚,请问

更新:这是表格的一个示例。你知道吗

surname    name    weight
1          1       0.016496
1          2       0.004884
1          3       0.004691

为了澄清我所说的nodes是什么意思,假设每一行都代表下图中较低3个节点的属性:

       1  
  /    |     \  
11     12     13  
...    ...    ...

例如,节点12通过采用其父节点(1)的名称并连接其位置(2)来命名
节点11、12和13各有3个节点作为其子节点,其权重严格小于各自的父节点。如果我设置了权重阈值M=0.0165,我想返回节点11、12和13,不带任何子节点。你知道吗


Tags: 字符串name名称节点记录阈值标识符surname
1条回答
网友
1楼 · 发布于 2024-09-30 20:34:49

如果您正在寻找一个类似pandas的语法,并且您有超出核心的需求,那么您将需要像Blaze这样的东西来控制它。The documentation表示它可以在并行处理部分处理HDF5文件。你知道吗

但是你的问题是你想用它做什么还不清楚。如有必要,请举例说明数据输入和输出。你知道吗

相关问题 更多 >