Preços de ações de alta frequência
Os dados de ações de frequência mais alta são bem modelados por um processo MA(1), portanto, é uma boa aplicação dos modelos deste capítulo.
O DataFrame intraday
contém os preços de um dia (em 1º de setembro de 2017) das ações da Sprint (símbolo "S") amostrados em uma frequência de um minuto. O mercado de ações fica aberto por 6,5 horas (390 minutos), das 9h30 às 16h.
Antes de analisar os dados da série temporal, você terá de limpá-los um pouco, o que será feito neste e nos próximos dois exercícios. Ao examinar as primeiras linhas (consulte IPython Shell), você perceberá várias coisas. Primeiro, não há cabeçalhos de coluna. Os dados não são marcados com a hora das 9:30 às 16:00, mas vão de 0 a 390. E você perceberá que a primeira data é o estranho "a1504272600". O número após o "a" é a hora Unix, que é o número de segundos desde 1º de janeiro de 1970. É assim que esse conjunto de dados separa cada dia de dados intradiários.
Se você observar os tipos de dados, verá que a coluna DATE
é um objeto, que aqui significa uma string. Você precisará alterar isso para numérico antes de limpar alguns dados ausentes.
A fonte dos dados de minuto é o Google Finance (veja aqui como os dados foram baixados).
O módulo datetime
já foi importado para você.
Este exercício faz parte do curso
Análise de séries temporais em Python
Instruções do exercício
- Altere manualmente a primeira data para zero usando
.iloc[0,0]
. - Altere os dois cabeçalhos de coluna para
'DATE'
e'CLOSE'
, definindointraday.columns
como uma lista que contém essas duas cadeias de caracteres. - Use o atributo pandas
.dtypes
(sem parênteses) para ver que tipo de dados há em cada coluna. - Converta a coluna
'DATE'
em numérica usando a função pandasto_numeric()
. - Torne a coluna
'DATE'
o novo índice deintraday
usando o método pandas.set_index()
, que receberá a string'DATE'
como argumento (não a coluna inteira, apenas o nome da coluna).
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 = ____