1. Nauka
  2. /
  3. Kursy
  4. /
  5. Analiza szeregów czasowych w Pythonie

Connected

ćwiczenie

Wysokoczęstotliwościowe ceny akcji

Dane o cenach akcji z wysoką częstotliwością próbkowania dobrze opisuje proces MA(1) – to świetne zastosowanie modeli z tego rozdziału.

DataFrame intraday zawiera ceny akcji Sprint (symbol giełdowy „S") z jednego dnia – 1 września 2017 roku – próbkowane co minutę. Giełda jest otwarta przez 6,5 godziny (390 minut), od 9:30 do 16:00.

Zanim przejdziesz do analizy szeregu czasowego, musisz nieco oczyścić dane – zrobisz to w tym i w dwóch kolejnych ćwiczeniach. Gdy przejrzysz pierwsze wiersze, zauważysz kilka rzeczy. Po pierwsze, brakuje nagłówków kolumn. Dane nie mają sygnatur czasowych od 9:30 do 16:00 – zamiast tego indeks biegnie od 0 do 390. Zwróć też uwagę na pierwszą datę: wygląda dość zagadkowo – „a1504272600". Liczba po literze „a" to czas uniksowy, czyli liczba sekund od 1 stycznia 1970 roku. W ten sposób zbiór danych oddziela kolejne dni danych śróddziennych.

Sprawdzając typy danych, zauważysz, że kolumna DATE ma typ object, co oznacza, że przechowuje ciągi znaków. Przed oczyszczeniem brakujących danych musisz zmienić jej typ na numeryczny.

Dane minutowe pochodzą z Google Finance (więcej informacji o sposobie ich pobierania znajdziesz tutaj).

Moduł datetime jest już zaimportowany.

Instrukcje

100 XP
  • Ręcznie zmień pierwszą datę na zero, używając .iloc[0,0].
  • Zmień nazwy obu kolumn na 'DATE' i 'CLOSE', przypisując do intraday.columns listę zawierającą te dwa ciągi znaków.
  • Użyj atrybutu .dtypes (bez nawiasów), aby sprawdzić typy danych w każdej kolumnie.
  • Przekonwertuj kolumnę 'DATE' na typ numeryczny, korzystając z funkcji pandas to_numeric().
  • Ustaw kolumnę 'DATE' jako nowy indeks ramki intraday, używając metody pandas .set_index() – jako argument przekaż ciąg znaków 'DATE' (nie całą kolumnę, lecz wyłącznie nazwę kolumny).