Pandas Series

Pandas Series

Wiele szeregów czasowych ma określoną częstotliwość, co oznacza, że ​​ich punkty danych są podzielone na stałe przedziały, jak każda minuta, każdego dnia lub co tydzień. Niespójne przedziały mogą być również obecne w szeregach czasowych. Data reprezentowana jako czas może być częścią szeregów czasowych danych. Przykłady z czasem znacznika zawierają datę takiego jak 07 sierpnia 2022 r., O godzinie 12:00. Szereg czasowy w Python to seria/zbiór punktów danych, w których każdy z nich ma z tym powiązany znacznik czasu. Na giełdzie cena akcji w różnych porach dnia jest realistycznym przykładem. Mimo że szeregi czasowe są również oferowane przez SCI-KIT-Learn, pandy zapewniają zbiór wielu funkcji. Możemy dodać godzinę i datę dla każdego rekordu w tym module PandaS i uzyskać rekordy danych danych. Korzystając z modułu Pandas, możemy odkryć dane dla określonego zakresu dat i godzin. Aby wyjaśnić analizę szeregów czasowych w Pandy, porozmawiajmy o kilku podstawowych celach.

Analiza szeregów czasowych główne cele

  • Tworzenie serii dat
  • Praca ze znacznikiem czasu danych
  • Wartości ciągów/dane do konwersji znacznika czasu
  • Krojenie danych za pomocą znacznika czasu dla różnych okresów ponownych próbkowania szeregów czasowych
  • Określić agregaty lub statystyki podsumowujące
  • Obsługa danych z brakującymi wartościami

Dlaczego pandy do analizy szeregów czasowych?

Chociaż biblioteka Panda ma wiele przydatnych funkcji, Python oferuje moduły takie jak DateTime, które wykonują operacje na danych takich jak daty i godziny. Te moduły są używane częściej do przetwarzania danych szeregów czasowych. Dodatkowo w analizie szeregów czasowych pandy utrzymują związek między bibliotekami. Gdy dane są znaczniki czasu, funkcje szeregów czasowych Pandy są bardzo pomocne. DateTime Pythona jest równoważne z znacznikiem czasu. Służy do wpisów DateTimeIndex i innych struktur danych. Struktura serii, która jest indeksowana przez znacznik czasu, jest najbardziej podstawową strukturą szeregów czasowych.

Jak utworzyć podstawowe szeregi czasowe pandy

Aby utworzyć proste szeregi czasowe, najpierw zaimportujemy wymagane moduły lub biblioteki, takie jak pandy, numpy i dateTime. Godzina i data nie są osobnymi typami danych w Python, ale można je obsłużyć za pomocą modułu DatETime, który można importować. Nie ma wymogu instalacji modułu Datetime Python na zewnątrz, ponieważ jest on już zawarty w Python. Moduł Python DateTime zapewnia zajęcia do pracy z datą i godziną. W Panand będziemy manipulować szeregami czasowymi, postępując zgodnie z wyżej wymienionymi celami analizy szeregów czasowych.

Utwórzmy listę zawierającą obiekty DateTime.

Teraz utworzymy serię przy użyciu tej listy zawierającej wartości datetime. Użyjemy wartości daty jako indeksu naszego obiektu serii.

Opowiedzieliśmy indeks dla serii za pomocą parametru indeksu wewnątrz funkcji serii (). Wyodrębniając indeks serii, możemy określić jego typ.

Jak można zobaczyć, struktura danych indeksu zmiennej jest DataTimeIndex.

Konwertowanie wartości ciągu lub danych na znacznik czasu

Wartości daty lub godziny można przekonwertować na różne struktury danych szeregów czasowych. Trzy różne struktury danych można wykorzystać do manipulowania szeregami czasowymi, i.mi., znacznik czasu, struktura okresu i struktura mimedelta. DateTimeIndex i stemple czasowe obiekty są najczęstsze z tych struktur. Metoda To_DateTime () może przekonwertować określoną datę lub serię dat na znacznik czasu.

Funkcja przekonwertowała wartość daty ciągu na znacznik czasu. Różne formaty daty można przekonwertować na obiekty DateTimeIndex za pomocą funkcji To_DateTime ().

Przeszliśmy dane daty w czterech różnych formatach w liście, i.mi., [DateTime (2022,6,8), „7 sierpnia 2022 r.”, „2022-czerwca-13”, „20220406”]. Jak można zauważyć, funkcja pomyślnie przekonwertowała każdy format na obiekt DataTimeIndex. Możemy również zmienić strukturę danych szeregów czasowych. Aby dodać kody częstotliwości, możesz zmienić datETimeIndex na okresIndex za pomocą metody to_period (). Na przykład wartość „D” reprezentuje codzienną częstotliwość.

Daty można również odjąć, aby określić dni między nimi.

Odjęliśmy wszystkie daty od daty na indeksie 0. Zwracany jest obiekt timedeltaindex, pokazujący wyniki jako listę zawierającą liczbę dni po odjęciu każdego daty z datą na indeksie 0.

Korzystanie z funkcji DATE_RANGE do utworzenia szeregów czasowych

Serię dat można utworzyć przy użyciu kilku funkcji w pandy. W przypadku znaczników czasu możemy użyć date_range (). Przez okres okres_range () i timedelta_range () w celu tworzenia danych delta czasowych. Funkcja DATE_RANGE () otrzyma dateTimeIndex z określoną częstotliwością. Metoda date_range () wymaga daty rozpoczęcia i daty zakończenia.

Dodatkowo możesz użyć parametru okresu wewnątrz date_range (). Musisz tylko określić datę rozpoczęcia, aby to osiągnąć. Funkcja zwróci dane dla określonego okresu i częstotliwości. Parametr Freq może być również używany podczas tworzenia szeregów czasowych za pomocą date_range (). Domyślna częstotliwość metody zakresu dat jest codzienna. Możemy użyć wartości „H”, która oznacza godzinę, aby uzyskać częstotliwość jako godziny.

Krojenie danych za pomocą znacznika czasu

Najpierw utworzymy ramkę danych za pomocą PD.Funkcja DataFrame, a indeks zostanie określony jako DateTimeIndex.

Najpierw stworzyliśmy szereg czasowy, a następnie określiliśmy go jako indeks naszej strumienia danych. Aby wyodrębnić daty między dwiema datami szeregów czasowych, użyjemy operatora plasterka.

Chociaż utworzona przez nas podstawowa ramka danych zawiera dane o częstotliwości dziennej, możemy ponownie próbować danych i wybrać sposób obliczania zagregowanej statystyki dla określonej częstotliwości. Zamiast obliczyć dane z częstotliwością dzienną, możemy zamiast tego obliczyć dane z częstotliwością miesięczną.

Znalezienie statystyk podsumowujących

Dodaj nową kolumnę w naszej oryginalnej ramce danych obliczając sumę toczącego w okresie dwóch okien. Możemy użyć statystyk okiennych do analizy i sprawnego danych szeregowych. Aby wygenerować okno toczące się nad kolumną DataFrame, użyjemy metody Rolling (). Wówczas funkcja sum () zostanie użyta do uzyskania suma toczenia.

Utworzono nową kolumnę „Roll_sum” zawierającą wartości suma toczenia określonych okien, i.mi., 2.

Radzenie sobie z brakującymi wartościami

Jak można zaobserwować, kolumna suma rollowego ma brakującą wartość w pierwszym rzędzie. Możemy naprzód lub naprzeć dane w ramach brakujących wartości danych. Utworzymy nową kolumnę, używając wartości sum toczących się, aby odsprzedać dane.

Zwróciliśmy się od brakującej wartości za pomocą funkcji Fillna () i użyliśmy parametru metody wewnątrz funkcji. Pomocne jest zastąpienie danych zerowych realistycznymi wartościami, takimi jak średnia okresu. Pamiętaj jednak, że jeśli masz do czynienia z szeregami czasowymi i chcesz, aby Twoje statystyki były realistyczne, nie powinieneś zaspokoić swoich danych, ponieważ byłoby to odpowiednikiem przewidywania i uzyskania informacji, których nie miałbyś, nie miałeś tego okres.

Wniosek

W tym artykule omówiliśmy szeregi czasowe w pandy. Omówiliśmy, w jaki sposób są szeregi czasowe, jakie są główne cele analizy szeregów czasowych i dlaczego wykorzystaliśmy pandy do szeregów czasowych. W tym poście pokazaliśmy, jak wykonać prostą manipulację, taką jak tworzenie prostych szeregów czasowych, przecinanie danych za pomocą znacznika czasu, znalezienie statystyk podsumowujących i radzenie sobie z brakującymi wartościami.