#python #pandas #pivot-table
#python #панды #сводная таблица
Вопрос:
У меня есть фрейм данных, который выглядит как:
parent | 07-Sep-20 08:31:10 | 07-Sep-20 12:31:10 | 07-Sep-20 16:31:10 | 07-Sep-20 20:31:10 | 08-Sep-20 00:31:10 |
=================================================================================================================
001 | 36.45 | 38 | 37.5 | 39 | 42
023 | 8.5 | 7 | 9.25 | 9.75 | 7.55
что мне нужно свернуть во временные ряды, например:
parent | timestamp | value
===================================
001 | 07-Sep-20 08:31:10 | 36.45
001 | 07-Sep-20 12:31:10 | 38
001 | 07-Sep-20 16:31:10 | 37.5
001 | 07-Sep-20 20:31:10 | 39
001 | 08-Sep-20 00:31:10 | 42
023 | 07-Sep-20 08:31:10 | 8.5
023 | 07-Sep-20 12:31:10 | 7
023 | 07-Sep-20 16:31:10 | 9.25
023 | 07-Sep-20 20:31:10 | 9.75
023 | 08-Sep-20 00:31:10 | 7.55
Итак, я предполагаю parent
, что это мой индекс, а затем мне нужно преобразовать столбцы 1: 5 в столбец с именем value
и добавить атрибут с именем timestamp
, который является именем заголовка сводного столбца. Используя Jupyter, я перепробовал все способы df.pivot_table, но не могу разобраться в синтаксисе, и все примеры, которые я нашел, делают ПРОТИВОПОЛОЖНОЕ тому, что я пытаюсь сделать. Проблема в том, что я не знаю заранее, какие имена будут присвоены столбцам даты, я знаю только, что они будут иметь индекс 1-5. Результат этой операции ни для чего не используется в pandas, мне нужно сохранить его обратно в CSV для использования в Tableau, pandas — это просто мой инструмент ETL для этой операции.
Ответ №1:
Это больше похоже на melt
нет pivot
df_out = df.melt('parent')
Комментарии:
1. может быть, именно поэтому мне было так трудно при поиске моего варианта использования с использованием ‘pivot_table’!