У меня есть pandas кадр данных, подобный этому:
+-------+-----+-----------------+----------------+----------------+
| name | age | favourite_color | favourite_food | favourite_city |
+-------+-----+-----------------+----------------+----------------+
| john | 25 | yellow | apple | munich |
| james | 24 | red | onion | melbourne |
+-------+-----+-----------------+----------------+----------------+
Я хочу, чтобы он выглядел так:
+-------+-----+--------------------+-----------------------------+
| name | age | favourite category | value of favourite category |
+-------+-----+--------------------+-----------------------------+
| john | 25 | color | yellow |
| john | 25 | food | apple |
| john | 25 | city | munich |
| james | 24 | color | red |
| james | 24 | food | onion |
| james | 24 | city | melbourne |
+-------+-----+--------------------+-----------------------------+
Я хочу взять 3 "любимых_ вещь"категории и разбить их с 3 столбцов, до 2 столбцов. Один столбец должен быть именем вещь , а другой столбец должен быть значением вещь .
При этом количество строк в таблице должно умножаться на количество категорий favourite_something (в данном случае 3x), а общие значения, такие как имя и возраст, должны просто дублироваться.
На высоком уровне мой набор данных содержит 3 наблюдения в строке для каждого человека: любимый цвет, еда и город. Я хочу изменить структуру данных таким образом, чтобы в каждой строке было только одно наблюдение.
Скажите, пожалуйста, как эта операция вызывается при обработке данных, и как проще всего это сделать в python и pandas.