Иерархия родительских дочерних путей в Python с использованием пандPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Иерархия родительских дочерних путей в Python с использованием панд

Сообщение Гость »

Я пытаюсь получить дочернюю и родительскую иерархию в новом столбце pandas. В настоящее время мой код выглядит так, но он ищет всех родителей, но должен искать тот, который находится в соответствующей строке.
Вот пример того, как это должно работать.Базовая таблица:



CHILD_ID
PARENT_ID




ITEM_1
ITEM_A


ITEM_2
ITEM_B


ITEM_A
ITEM_X


ITEM_A
ITEM_Y


ITEM_B
ITEM_Z

< /tbody>

Первая итерация



CHILD_ID
PARENT_ID
Иерархия




ITEM_1
ITEM_A
ITEM_1, ITEM_A


ITEM_2ITEM_B
ITEM_2, ITEM_B


ITEM_A
ITEM_X
ITEM_A, ITEM_X


ITEM_A
ITEM_Y
ITEM_A, ITEM_Y


ITEM_B
ITEM_Z
ITEM_B, ITEM_Z



Вторая итерация



CHILD_ID
PARENT_ID
Иерархия




ITEM_1
ITEM_A
ITEM_1, ITEM_A, ITEM_X


ITEM_1
ITEM_A
ITEM_1, ITEM_A, ITEM_Y


ITEM_2< /td>
ITEM_B
ITEM_2, ITEM_B, ITEM_Z


ITEM_A
ITEM_X
ITEM_A, ITEM_X

ITEM_A
ITEM_Y
ITEM_A, ITEM_Y

< tr>
ITEM_B
ITEM_Z
ITEM_B, ITEM_Z



Я изо всех сил пытаюсь добиться этого результата, вот мой код:
def get_parents(child_id):
list_of_parents = []

def dfs(child_id, parents_list):
parent_ids = df[df["child_id"] == child_id]["parent_id"].values
if len(parent_ids) == 0:
return
for parent_id in parent_ids:
if parent_id not in parents_list:
parents_list.append(parent_id)
dfs(parent_id, parents_list)

dfs(child_id, list_of_parents)
return list_of_parents

df["parent_hierarchy"] = df["child_id"].apply(get_parents)


Подробнее здесь: https://stackoverflow.com/questions/781 ... ing-pandas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»