Преобразование фрейма данных во временные ряды

#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’!