Я работаю с данными опроса, в которых респонденты дважды брали интервью: один раз изначально и один раз от шести до восьми месяцев. С каждым месяцем встречаются новые собеседники, что приводит к созданию вращающейся панели. Как я могу соответствовать индивидууму к его/ее предыдущим интервью в Python, используя следующую информацию:Как я могу сопоставить ответы одного человека с опросом во времени, чтобы сформировать набор данных панели?
CASEID YYYYMM ID IDPREV DATEPR INCOME
1 2 198706 2 382 198612 12500
2 3 198706 3 4 198612 2500
3 4 198706 4 67 198612 27500
4 5 198706 5 134 198612 12500
5 6 198706 6 193 198612 22500
Итак, первая строка гласит, что предыдущие ответы индивида на опрос, содержатся в строке, где предыдущая дата 198612 (декабрь 1986) и идентификатор 382. Как я могу соответствовать эти ответы, используя информацию, которую я должен создать панель набора данных в следующей форме:
CASEID YYYYMM ID IDPREV DATEPR INCOME
1 463 198612 382 - - 12000
1856 198706 2 382 198612 12500
2 97 198612 4 - - 3500
1857 198706 3 4 198612 2500
3 164 198612 67 - - 25000
1858 198706 4 67 198612 27500
4 289 198612 134 - - 12500
1859 198706 5 134 198612 12500
5 323 198612 193 - - 22500
1860 198706 6 193 198612 22500
Я посмотрел в документации «сливаться» для панд и попробовали пару различных способов сопоставления дат и идентификаторов, индексируя их, но, похоже, не могут получить панель структура данных.
Вы смогли заставить это работать в конце концов? – Stefan
Извините за задержанный ответ. К сожалению, это похоже на реализацию результатов второго шага в кадре данных без значений (кроме заголовков). Я пытался работать над решением, которое менее утомительно, чем создание двух разных фреймов данных (один с людьми, которые ранее отвечали, а один с лицами, которые этого не сделали), и слияние этих. Любые дополнительные предложения были бы полезными, так как указывали бы на любые очевидные ошибки, которые я мог бы сделать. – Martin
Вы можете получить пустой 'DataFrame', предполагая, что имена столбцов слияния верны, и есть фактические совпадения, если типы данных не соответствуют - одна цифра, одна строка или дата-время. Взгляните на '.info()' как для 'df' для стартеров. Являются ли приведенные ниже команды или вам нужно какое-либо разъяснение, что они должны делать? – Stefan