Serie de tiempo de Pandas

Serie de tiempo de Pandas

Muchas series de tiempo tienen una frecuencia definida, lo que significa que sus puntos de datos se dividen en intervalos fijos como cada minuto, cada día o cada semana. Los intervalos inconsistentes también pueden estar presentes en las series de tiempo. Una fecha representada como tiempo puede ser parte de una serie temporal de datos. Los ejemplos de marca de tiempo incluyen una fecha como el 07 de agosto de 2022, a las 12:00. Una serie temporal en Python es una serie/recopilación de puntos de datos donde cada uno tiene una marca de tiempo asociada con ella. En el mercado de valores, el precio de la acción en diferentes momentos durante el día es un ejemplo realista. A pesar de que Sci-Kit-Learn también ofrece series temporales, Pandas proporciona una colección de múltiples características. Podemos agregar la hora y la fecha para cada registro en este módulo Pandas y obtener los registros de DataFrame. Usando el módulo de la Serie de Tiempo Pandas, podemos descubrir los datos para un rango específico de fechas y tiempos. Para explicar el análisis de series de tiempo en Pandas, hablemos de varios objetivos principales.

Análisis de series de tiempo Objetivos principales

  • Creando la serie de fechas
  • Trabajar con la marca de tiempo de los datos
  • Valores/datos de cadena a la conversión de la marca de tiempo
  • Porte de datos utilizando una marca de tiempo para diferentes períodos que vuelven a muestrear la serie temporal
  • Determinar los agregados o estadísticas de resumen
  • Manejo de datos con valores faltantes

Por qué pandas para el análisis de series de tiempo?

Aunque la biblioteca Pandas tiene muchas características útiles, Python ofrece módulos como DateTime que ejecutan operaciones en datos como fechas y horarios. Estos módulos se utilizan con más frecuencia para procesar datos de series de tiempo. Además, para el análisis de series de tiempo, los pandas mantienen la relación entre las bibliotecas. Cuando los datos son traficados de tiempo, las características de las series de tiempo de Pandas son bastante útiles. La fecha y hora de Python es equivalente a la marca de tiempo en Pandas. Se utiliza para las entradas de DateTimeIndex y otras estructuras de datos de Pandas Timeseries. La estructura de la serie, que está indexada por la marca de tiempo, es la estructura de series de tiempo más básicas.

Cómo crear una serie de tiempo básica de Pandas

Para crear una serie de tiempo simple, primero importaremos los módulos o bibliotecas requeridas, como pandas, numpy y dateTime. La hora y la fecha no son tipos de datos separados en Python, pero se pueden manejar utilizando el módulo DateTime, que se puede importar. No hay ningún requisito para instalar el módulo de fecha y hora de Python afuera porque ya está incluido en Python. El módulo Python DateTime proporciona clases para trabajar con fecha y hora. En Pandas, manipularemos las series de tiempo siguiendo los objetivos mencionados de análisis de la serie temporal.

Creemos una lista que contenga los objetos DateTime.

Ahora, crearemos una serie utilizando esta lista que contiene los valores de DateTime. Usaremos los valores de fecha como índice de nuestro objeto en serie.

Especificamos el índice para la serie utilizando el parámetro de índice dentro de la función Series (). Al extraer el índice de la serie, podemos determinar su tipo.

Como se puede ver, la estructura de datos de índice de la variable es un DatateMeIndex.

Convertir valores o datos de cadena a marca de tiempo

Los valores de fecha o hora se pueden convertir a diferentes estructuras de datos de series de tiempo. Se pueden usar tres estructuras de datos diferentes para manipular las series de tiempo, yo.mi., marcas de tiempo, estructura de período y estructura de Timedelta. Los objetos de DaTetimeIndex y Time Stamps son las más comunes de estas estructuras. El método to_dateTime () puede convertir una fecha o serie de fechas particulares en marcas de tiempo.

La función ha convertido el valor de la fecha de la cadena en la marca de tiempo. Los diferentes formatos de fecha se pueden convertir en objetos DatetimeIndex utilizando la función To_DateTime ().

Hemos pasado los datos de la fecha en cuatro formatos diferentes dentro de una lista, yo.mi., [DateTime (2022,6,8), "7 de agosto de 2022", "2022-13-13", "20220406"]. Como puede notar, la función ha convertido con éxito cada formato en el objeto DatateMeIndex. También podemos cambiar la estructura de datos de la serie temporal. Para agregar códigos de frecuencia, puede cambiar DateTimeIndex a RiderYIndex utilizando el método To_period (). El valor "d", por ejemplo, representa una frecuencia diaria.

Las fechas también se pueden restar para determinar los días entre ellas.

Hemos restado todas las fechas de la fecha en el índice 0. Se devuelve un objeto Timedeltaindex, que muestra los resultados como una lista que contiene el número de días después de restar cada fecha con la fecha en el índice 0.

Usando la función date_range para crear una serie de tiempo

Se puede crear una serie de fechas utilizando varias funciones en Pandas. Para las marcas de tiempo, podemos usar date_range (). Para el período, el period_range () y Timedelta_Range () para crear datos delta del tiempo. La función date_range () obtendrá un DateTimeIndex con una frecuencia especificada. El método date_range () requiere la fecha de inicio y la fecha de finalización.

Además, puede usar el parámetro de época dentro del date_range (). Solo necesita especificar la fecha de inicio para lograr esto. La función devolverá los datos para el período y la frecuencia especificados. El parámetro FREQ también se puede usar al crear una serie de tiempo usando date_range (). La frecuencia predeterminada del método del rango de fecha es diario. Podemos usar el valor "H", que representa la hora, para obtener la frecuencia como horas.

Corte de datos utilizando una marca de tiempo

Primero crearemos un marco de datos utilizando el PD.Función DataFrame, y el índice se especificará como DateTimeIndex.

Primero, creamos una serie de tiempo y luego la especificamos como el índice de nuestro marco de datos. Para extraer las fechas entre dos fechas de series de tiempo, utilizaremos el operador Slice.

Aunque el marco de datos básico que hemos creado contiene datos con una frecuencia diaria, podemos volver a muestrear los datos y seleccionar cómo calcular el estadístico agregado para la frecuencia especificada. En lugar de calcular los datos a una frecuencia diaria, podemos calcular los datos a una frecuencia mensual.

Encontrar estadísticas resumidas

Agregue una nueva columna en nuestro marco de datos original que calcula la suma rodante durante un período de dos ventas. Podemos usar las estadísticas de la ventana de rodadura para analizar y suavizar los datos de la serie temporal. Para generar una ventana de rodadura sobre la columna DataFrame, usaremos el método Rolling (). Entonces la función de suma () se usará para obtener la suma rodante.

Se ha creado una nueva columna "roll_sum" que contiene los valores de suma rodante de las ventanas especificadas, I.mi., 2.

Lidiar con los valores faltantes

Como se puede observar, la columna de suma de rollo tiene un valor faltante en la primera fila. Podemos reenviar o rellenar los datos al tratar con los valores de datos faltantes. Crearemos una nueva columna utilizando los valores de suma de rodadura para rellenar los datos.

Cuentamos con el valor faltante usando la función Fillna () y utilizamos el parámetro del método dentro de la función. Es útil reemplazar datos nulos con valores realistas, como la media de un período. Sin embargo, recuerde que si está tratando con una serie de tiempo y desea que sus estadísticas sean realistas, no debe rellenar sus datos porque hacerlo sería el equivalente a hacer una predicción y obtener la información que no tendría en eso. período.

Conclusión

En este artículo, hemos discutido las series de tiempo en Pandas. Discutimos qué series de tiempo son, cuáles son los principales objetivos del análisis de series de tiempo y por qué utilizamos pandas para series de tiempo. En esta publicación, demostramos cómo realizar una manipulación simple como crear una serie de tiempo simple, cortar datos utilizando una marca de tiempo, encontrar estadísticas de resumen y tratar los valores faltantes.