Prețuri bursiere de înaltă frecvență
Datele bursiere de înaltă frecvență sunt bine modelate printr-un proces MA(1), ceea ce le face o aplicație potrivită pentru modelele din acest capitol.
DataFrame-ul intraday conține prețurile din cursul unei zile (1 septembrie 2017) pentru acțiunile Sprint (simbolul bursier „S"), eșantionate la un interval de un minut. Bursa este deschisă timp de 6,5 ore (390 de minute), între orele 9:30 și 16:00.
Înainte de a analiza datele de tip serie de timp, va trebui să le preprocesezi puțin — lucru pe care îl vei face în acest exercițiu și în următoarele două. Când te uiți la primele rânduri, vei observa câteva lucruri. În primul rând, nu există anteturi de coloană. Datele nu sunt marcate temporal de la 9:30 la 16:00, ci merg de la 0 la 390. De asemenea, vei observa că prima dată are forma ciudată „a1504272600". Numărul de după „a" reprezintă timpul Unix, adică numărul de secunde scurse de la 1 ianuarie 1970. Astfel separă acest set de date fiecare zi de date intraday.
Dacă te uiți la tipurile de date, vei observa că și coloana DATE este de tip obiect, ceea ce înseamnă că este un șir de caractere. Va trebui să o convertești la tip numeric înainte de a putea gestiona valorile lipsă.
Sursa datelor la minut este Google Finance (vezi aici cum au fost descărcate datele).
Modulul datetime a fost deja importat pentru tine.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Schimbă manual prima dată la zero folosind
.iloc[0,0]. - Schimbă cele două anteturi de coloană la
'DATE'și'CLOSE'setândintraday.columnsegal cu o listă care conține acele două șiruri de caractere. - Folosește atributul pandas
.dtypes(fără paranteze) pentru a vedea ce tip de date se află în fiecare coloană. - Convertește coloana
'DATE'la tip numeric folosind funcția pandasto_numeric(). - Fă din coloana
'DATE'noul index alintradayfolosind metoda pandas.set_index(), căreia îi vei transmite șirul'DATE'ca argument (nu întreaga coloană, ci doar numele coloanei).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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 = ____