Я работаю с некоторыми семейными данными, в которых хранятся записи о лицах, осуществляющих уход, и количестве детей, которые его воспитывают.В настоящее время демографическая информация для опекуна и всех детей, которые есть у опекуна, занесена в опеку.Я хочу взять демографическую информацию детей и поместить ее в соответствующую запись / ряд детей.Вот пример данных, с которыми я работаю:
Vis POS FAMID G1ID G2ID G1B G2B1 G2B2 G2B3 G1R G2R1 G2R2 G2R3
1 0 1 100011 1979 2010 White White
1 1 1 200011
1 0 2 100021 1969 2011 2009 AA AA White
1 1 2 200021
1 2 2 200022
1 0 3 100031 1966 2008 2010 2011 White White AA AA
1 1 3 200031
1 2 3 200032
1 3 3 200033
G1 = данные опекуна
G2 = данные ребенка
GxBx = год рождения
GxRx = race
OUTPUT
Visit POS FAMID G1 G2 G1Birth G2Birth G1Race G2Race
1 0 1 100011 1979 White
1 1 1 200011 2010 White
1 0 2 100021 1969 AA
1 1 2 200021 2011 AA
1 2 2 200022 2009 White
1 0 3 100031 1966 White
1 1 3 200031 2008 White
1 2 3 200032 2010 AA
1 3 3 200033 2011 AA
Из этих двух таблиц видно, что все столбцы G2Bx должны попадать в новый столбец G2Birth, и тот же принцип для столбцов G2Rx.(На самом деле у меня есть еще несколько примеров, таких как раса и год рождения в моих реальных данных)
Я изучал опорные точки и функции суммирования в кадре данных панд, но я не совсем получил то, что хотел.Самым близким, что я получил, было использование функции плавления, но у меня возникла проблема с функцией плавления, заключающаяся в том, что я не мог заставить ее отобразить индексы, не беря все значения из этого столбца.IE хочет создать строку для child2 и child3 для людей, у которых есть только child1.Возможно, я просто неправильно использую функцию melt.
Я хочу, чтобы все значения из g2Birthdate1 отображались в POS, когда POS = 1, и все g2Birthdate2 в индекс POS = 2 и т. Д. Есть ли функция, котораяможет помочь достичь этого?Или для этого требуется дополнительное решение для кодирования?