У меня есть фрейм данных, который я хочу сгруппировать на основе значения другого столбца в том же фрейме данных.
Например:
Parent_ID и Child ID связаны и определяюткто связан с кем в иерархическом дереве.
Фрейм данных выглядит (вход из файла csv)
No Name ID Parent_Id
1 Tom 211 111
2 Galie 209 111
3 Remo 200 101
4 Carmen 212 121
5 Alfred 111 191
6 Marvela 101 111
7 Armin 234 101
8 Boris 454 109
9 Katya 109 323
Я хотел бы сгруппировать этот фрейм данных на основе идентификатора и Parent_IDв приведенной ниже группировке и создайте из этого CSV-файлы на основе родительского элемента верхнего уровня.То есть Alfred.csv, Carmen.csv (будет иметь только свою собственную запись, ледяная строка # 4), Katya.csv с использованием функции to_csv ().
Alfred
|_ Galie
_ Tom
_ Marvela
|_ Remo
_ Armin
Carmen
Katya
|_ Boris
И я хочу создать новыйстолбец в том же фрейме данных, который будет иметь тег, указывающий иерархию.Например:
No Name ID Parent_Id Tag
1 Tom 211 111 Alfred
2 Galie 209 111 Alfred
3 Remo 200 101 Marvela, Alfred
4 Carmen 212 121
5 Alfred 111 191
6 Marvela 101 111 Alfred
7 Armin 234 101 Marvela, Alfred
8 Boris 454 109 Katya
9 Katya 109 323
Обратите внимание, что имена могут повторяться, но идентификатор будет уникальным.
Пожалуйста, дайте мне знать, как этого добиться с помощью панд.Я попробовал groupby (), но кажется немного сложным и не понимаю, что я намереваюсь.Должен быть один файл для каждого родителя, и дочерние записи в родительском файле.Если у ребенка есть другой ребенок (например, marvel), он может иметь собственный файл csv.
И конечный результат будет
Alfred.csv - All records matching Galie, Tom, Marvela
Marvela.csv - All records matching Remo, Armin
Carmen.csv - Only record matching carmen (row)
Katya.csv - all records matching katya, boris