EmpezarEmpieza gratis

Precios de acciones de alta frecuencia

Los datos bursátiles de alta frecuencia se modelan bien con un proceso MA(1), así que son una buena aplicación de los modelos de este capítulo.

El DataFrame intraday contiene los precios de un día (1 de septiembre de 2017) de la acción de Sprint (símbolo "S") muestreados a una frecuencia de un minuto. El mercado está abierto durante 6,5 horas (390 minutos), de 9:30 a 16:00.

Antes de poder analizar la serie temporal, tendrás que limpiarla un poco, cosa que harás en este y los dos ejercicios siguientes. Al mirar las primeras filas, notarás varias cosas. Primero, no hay encabezados de columna. Los datos no están fechados de 9:30 a 16:00, sino que van de 0 a 390. Y verás que la primera fecha es el extraño "a1504272600". El número después de la "a" es tiempo Unix, es decir, el número de segundos desde el 1 de enero de 1970. Así es como este conjunto de datos separa cada día de datos intradía.

Si miras los tipos de datos, notarás que la columna DATE es un objeto, que aquí significa una cadena. Tendrás que cambiarla a numérica antes de poder limpiar algunos datos faltantes.

La fuente de los datos por minuto es Google Finance (consulta aquí cómo se descargaron los datos).

El módulo datetime ya se ha importado por ti.

Este ejercicio forma parte del curso

Análisis de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Cambia manualmente la primera fecha a cero usando .iloc[0,0].
  • Cambia los dos encabezados de columna a 'DATE' y 'CLOSE' asignando a intraday.columns una lista que contenga esas dos cadenas.
  • Usa el atributo de pandas .dtypes (sin paréntesis) para ver qué tipo de datos hay en cada columna.
  • Convierte la columna 'DATE' a numérica usando la función de pandas to_numeric().
  • Convierte la columna 'DATE' en el nuevo índice de intraday usando el método de pandas .set_index(), que tomará la cadena 'DATE' como argumento (no toda la columna, solo el nombre de la columna).

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# import datetime module
import datetime

# Change the first date to zero
intraday.___ = 0

# Change the column headers to 'DATE' and 'CLOSE'
intraday.columns = ___

# Examine the data types for each column
print(intraday.dtypes)

# Convert DATE column to numeric
intraday['DATE'] = pd.to_numeric(____)

# Make the `DATE` column the new index
intraday = ____
Editar y ejecutar código