必需的csv字段的递归填充

问题描述 投票:0回答:1

这是难题

从以下数据集(csv)开始

ID,PARENTID,FNID
100,,100
102,100,
103,102,
104,102,
105,103,
106,105,
200,,200
202,200,
203,202,
204,202,
205,203,
206,205,

这会创建两个看起来像这样的层次树

                       100
                       /  
                      102
                     /   \
                   103   104
                  /
                 105
                /
               106

如图所示,源数据具有三列。 ID是主键,并且必须是唯一值。 PARENTID是定义树中关系的对象。 FNID是应用程序使用的必填字段,它提取所有这些数据并指示每棵树的ROOT元素。

在源数据中,未填充FNID字段,除了ROOT元素本身。

逻辑上,我想象一个过程,如果FNID为null,则该过程查看FNID字段以获取PARENTID的记录。

示例:元素102的FNID为空。脚本将元素102的PARENTID标识为100。然后,脚本查看元素100的FNID,并找到一个值,然后将该值填充到元素102的FNID字段中。]

这里的诀窍是这些数据集不一定要按照便利的顺序排列,并且可能会很大(> 100k条记录)。

关于如何实现这一目标的任何想法?到目前为止,我对源csv数据的操作一直在使用python,但是我可以接受其他选项。

这里是难题,从以下数据集(csv)开始ID,PARENTID,FNID 100,,100 102,100,103,102,104,102,105,103,106,105,200,200 202,200,203,202,204,202,205,203,206,205,This。 ..

python csv
1个回答
0
投票

我猜有很多方法可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.