¿Cómo trazar series de tiempo con muchos NaN?
Originalmente tenía un dataframe que contenía el consumo de energía de algunos dispositivos como este:
y quería trazar el consumo de energía vs tiempo para diferentes dispositivos, una trama por cada una de las 6 fechas posibles. Después de agrupar por fecha, obtuve gráficos como este (para cada grupo = fecha):
Luego intenté crear una gráfica similar, pero intercambiar los roles de fecha y dispositivo para que esté agrupada por dispositivo y coloreada por fecha. Para hacerlo, preparé este dataframe:
Es similar al anterior, pero tiene muchos valores NaN debido a diferentes tiempos de medición. Pensé que no sería un problema, pero luego, después de agrupar por dispositivo, las subtramas se ven así (ex es solo el nombre del sub-dataframe extraído del bucle que pasa por grupos = dispositivos):
Este es el dataframe ex (el retraso medio entre observaciones es de alrededor de 20 segundos):
Pregunta: ¿Qué debo hacer para hacer que la trama agrupada por dispositivo se parezca a las agrupadas por fecha? (Me gustaría usar el dataframe ex, pero manejar de alguna manera los valores NaN).
davy.ai
Para hacer que la gráfica agrupada por dispositivo se vea como las agrupadas por fecha, podemos usar el método
interpolate()
de Pandas para llenar los valores NaN en el dataframeex
. Este método llenará valores faltantes con valores interpolados basados en los puntos de datos circundantes.Primero, podemos establecer la columna
time
como el índice del dataframeex
y luego aplicar el métodointerpolate()
. Luego podemos restablecer el índice de nuevo como una columna y agrupar por la columnadevice
y aplicarplotly
.Código de ejemplo:
Esto debería producir una gráfica con el mismo diseño que las agrupadas por fecha, pero cada subtrama mostrará el consumo de energía vs tiempo para un dispositivo diferente.