У меня есть данные опроса. Опрос задает вопрос, и респонденты выбирают одну или несколько категорий для каждого вопроса. Затем опрос задает демографические c вопросы, такие как пол. Выходные данные представляют собой фрейм данных с демографической информацией c в виде столбцов и матриц 0 и 1 для каждой категории в каждом вопросе (0 = не выбран и 1 = выбран).
Чтобы помочь вам лучше понять, как это Похоже, у меня есть следующий фрейм данных:
df = pd.DataFrame({'Survey ID': [1,2,3],
'Q1_Topic A': [0,1,1],
'Q1_Topic B': [1,0,1],
'Q1_Topic C': [1,0,0],
'Q2_Topic X': [0,0,1],
'Q2_Topic Y': [0,1,0],
'Q2_Topic Z': [0,0,1],
'Gender': ['Male', 'Female', 'Male']
})
print(df)
Мне нужно преобразовать этот фрейм данных, чтобы показать мне столбец для каждого вопроса и несколько строк для каждого опроса в зависимости от того, сколько категорий было выбрано. В каждой строке должна быть категория под соответствующим столбцом с вопросом.
Все еще не уверены? Трудно объяснить, но данные должны выглядеть следующим образом:
df2 = pd.DataFrame({'Survey ID': [1,1,2,3,3],
'Q1': ['B','C','A','A','B'],
'Q2': [float('nan'), float('nan'), 'Y', 'X', 'Z'],
'Gender': ['Male', 'Male', 'Female', 'Male', 'Male']
})
print(df2)
В основном Мне нужно преобразовать df в df2. Примечание: для вопроса и топики существует общий разделитель "_". c для каждой метки столбца.
Как всегда, большое спасибо за помощь в продвинутом. Без этого сообщества я бы иногда серьезно застревал, и благодаря этой платформе я многому учусь.