Группировка многоиндексных временных рядов и визуализация по событиям

#python #dataframe #time-series #pandas-groupby #timeserieschart

Вопрос:

  1. Как я могу группировать многодиапазонные таймсерии ? (В каждом случае много серий времени)

От :

                                     Consumption
Object1 Event1 2021-07-28 00:27:51     0.996803
               2021-07-28 00:34:46     0.567108
        Event2 2021-07-28 00:44:52     0.032592
               2021-07-28 00:33:41     0.834045
        Event3 2021-07-28 00:35:02     0.913118
               2021-07-28 00:37:05     0.775223
Object2 Event1 2021-07-28 00:42:09     0.934766
               2021-07-28 00:40:07     0.186184
        Event2 2021-07-28 00:42:05     0.570700
               2021-07-28 00:44:33     0.577405
Object3 Event1 2021-07-28 00:47:04     0.565766
               2021-07-28 00:47:54     0.201725
        Event2 2021-07-28 00:48:09     0.631816
               2021-07-28 00:53:37     0.784415
        Event4 2021-07-28 00:51:43     0.201031
               2021-07-28 00:54:57     0.722877
 

Для :

 Object1 Event1  sum (timeseries.diff()*1/2*(df['Consumption'] df['Consumption'].shift(1)))
....
Object3 Event4  sum (timeseries.diff()*1/2*(df['Consumption'] df['Consumption'].shift(1)))
 

Сумма периода времени продукта в среднем по потреблению за это время.

  1. Отображать на диаграмме рассеяния все временные ряды объектов с выравниванием по событиям?

образец данных здесь

 import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(16),
index=[['Object1','Object1','Object1', 'Object1','Object1','Object1',
        'Object2','Object2','Object2','Object2',
        'Object3','Object3', 'Object3','Object3','Object3', 'Object3'],
['Event1','Event1', 'Event2','Event2',  'Event3','Event3',
 'Event1','Event1',  'Event2','Event2', 'Event1','Event1',
 'Event2','Event2', 'Event4','Event4'],
['2021-07-28 00:27:51', '2021-07-28 00:34:46', '2021-07-28 00:44:52',
'2021-07-28 00:33:41', '2021-07-28 00:35:02', '2021-07-28 00:37:05',
'2021-07-28 00:42:09', '2021-07-28 00:40:07', '2021-07-28 00:42:05',
'2021-07-28 00:44:33', '2021-07-28 00:47:04', '2021-07-28 00:47:54',
'2021-07-28 00:48:09', '2021-07-28 00:53:37', '2021-07-28 00:51:43',
'2021-07-28 00:54:57']], 
columns=['Consumption'])