Я смотрю, возможно ли это сделать с помощью python. У меня более 100 тем, несколько переменных, извлеченных в разные дни; Я хочу сделать имена переменных (написанные в строках) именами столбцов и соответствующим образом переместить их значения. Если это не имеет смысла, я прилагаю скриншот того, что я хочу сделать с помощью Python. Подскажите, пожалуйста, возможно ли это вообще, и если да, то как? Я не обязательно ищу конкретный сценарий, а просто общий поток? Спасибо!
СЛЕВА: то, что у меня есть. ПРАВИЛЬНО: что я хочу
1 ответ
Попробуйте следующий код:
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, запустите мой код без этих функций и разница должна быть очевидна.
pivot_table
?
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
df.pivot_table(index='subjID', columns='var_names', values='var_values')
.