我有一个4+ Gb HDF5表,其行对应于树状结构中的节点。有3个显着列:name
,surname
,weight
。姓氏记录给定节点的父节点的名称,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,而不是他们的孩子。
答案 0 :(得分:0)
如果你正在寻找像语法这样的熊猫,并且你已经没有核心要求,你需要像Blaze这样的东西来控制它。 The documentation表示它可以在并行处理部分处理HDF5文件。
然而,您对自己想要做什么的问题并不清楚。如果必须,请举例说明数据输入和输出。