Добавление уровней в иерархический фрейм данных Dask, аналогичный Oracle SQL, соединяется - PullRequest
0 голосов
/ 16 января 2020

У меня очень большой Dask массив данных (который не помещается в память, если я использую pandas) с OWL тройками, который выглядит примерно так:

class1   statement          class2
Person   rdfs:subClassOf    owl:Thing
Woman    rdfs:subClassOf    Person
Man      rdfs:subClassOf    Person
Person   owl:disjointWith   Building

Я бы хотел добавить столбец level к этому фрейму данных для всех строк, имеющих rdfs:subClassOf в столбце statement. Чтобы получить это:

class1   statement          class2      level
Person   rdfs:subClassOf    owl:Thing   1
Woman    rdfs:subClassOf    Person      2
Man      rdfs:subClassOf    Person      2

Подобно тому, как Oracle SQL, соединяемый по запросу ниже, добавит уровни и сообщит о возможных бесконечных циклах (дополнительный бонус, если возможно):

select  level ind,
        person_id,
        supervisor_id,
        connect_by_iscycle
from    people
where   1 = 1
start   with person_id = 1
connect by nocycle prior person_id = supervisor_id

Возможно ли это с помощью Dask или Pandas (если нужно)?

...