записать значение всех столбцов для ID в одном столбце на уровень ниже с посощью Pandas
Здраствуйте,нужно записать значение всех столбцов для ID в одном столбце на уровень ниже,вот пример данных
Нужно получить примерно такой результат:
data = {'Parent Meta`s ID' : ['3516', '3518', '3517', '4440'],
'Child1' : [4451, 3607, 4143, 3598],
'Child2' : ["", "", 4451,3518],
'Child3' : ["", "","",3531]}
frame = pd.DataFrame(data)
Буду очень благодарен за любую помощь
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
У меня получилась довольно неуклюжая конструкция:
import pandas as pd
data = {'Parent Meta`s ID' : ['3516', '3518', '3517', '4440'],
'Child1' : [4451, 3607, 4143, 3598],
'Child2' : ["", "", 4451,3518],
'Child3' : ["", "","",3531]}
df = pd.DataFrame(data)
df["Child1"] = df.values.tolist()
df = df.explode('Child1').iloc[:, :2]
df["Level"] = 2-(df["Parent Meta`s ID"]==df["Child1"])
df.loc[df["Parent Meta`s ID"].duplicated(), "Parent Meta`s ID"]=""
df.loc[df["Level"]==1, "Child1"]=""
df:
Parent Meta`s ID Child1 Level
0 3516 1
0 4451 2
0 2
0 2
1 3518 1
1 3607 2
1 2
1 2
2 3517 1
2 4143 2
2 4451 2
2 2
3 4440 1
3 3598 2
3 3518 2
3 3531 2
Есть предположение, что многое можно упростить, обработав данные на этапе их подготовки, а не после создания датафрейма.

