Переставить переменные в строке в столбец по теме (кейс) и дате - PullRequest
0 голосов
/ 03 апреля 2020

Я смотрю, можно ли вообще использовать python. У меня более 100 предметов, несколько переменных извлечены в разные дни; Я хочу сделать имена переменных (записанных в строках) в имена столбцов и соответственно переместить их значения. Если это не имеет смысла, я прилагаю скриншот того, что я хочу сделать, используя Python. Пожалуйста, дайте мне знать, если это вообще возможно, и если да, то как? Я не обязательно ищу конкретный c скрипт, а просто общий поток? Спасибо!

СЛЕВА: что у меня есть. ПРАВО: что я хочу

1 Ответ

0 голосов
/ 03 апреля 2020

Попробуйте следующий код:

df.groupby('subjID').apply(lambda grp: grp.pivot(
    index='date', columns='var_names', values='var_values'))\
    .rename_axis(columns=None).reset_index()

Изначально я думал о pivot с индексом, установленным в subjID и date , но к сожалению, pivot не подходит для такого случая.

Я обнаружил, что это ошибка, и о ней сообщили Pandas GitHub как о проблеме 21425 .

Итак, чтобы обойти это ограничение, я сгруппировал по subjID и затем назвал pivot с index = 'date' для каждой группы .

Чтобы увидеть необходимость rename_axis и reset_index , запустите мой код без этих функций, и разница должна быть очевидной.

...