Dane szeregów czasowych w pandach

W tym samouczku dowiesz się, jak ponownie próbkować dane szeregów czasowych za pomocą Pand. Możesz obejrzeć pełny film tego samouczka na dole tego bloga .

Skąd pomysł na ponowne próbkowanie? Jest to związane z danymi szeregów czasowych, a my zmienimy częstotliwość raportowania tych danych. Na przykład zmiana wartości rocznej na miesięczną lub tygodniową albo zmiana danych godzinowych na dzienne. Krótko mówiąc, zmieniamy poziom w hierarchii.

Można to wykorzystać z wielu powodów, takich jak uzyskiwanie bardziej wiarygodnych trendów , rozmiarów próbek i sezonowości . W niektórych raportach bardziej sensowne będzie użycie jednego poziomu hierarchii zamiast innego.

Ponadto ponowne próbkowanie może pomóc, jeśli masz różne źródła danych i musisz przeprowadzić łączenie danych szeregów czasowych. Pomoże to również w przypadku niezgodności w hierarchii .

Dane szeregów czasowych w pandach

Aby jeszcze bardziej to rozbić, mamy próbkowanie w dół i w górę.

Downsampling ma na celu zmniejszenie częstotliwości raportowania . Może to być na przykład konwersja z sekundy na godzinę, aby mieć mniej wartości lub próbkowanie w dół z miesiąca na kwartał.

Z drugiej strony upsampling ma na celu zwiększenie częstotliwości raportowania z poziomu miesiąca do dnia . Więcej przykładów tego będziemy mieli później.

Dane szeregów czasowych w pandach

Spis treści

Jak ponownie próbkować dane szeregów czasowych za pomocą pand

Jak mamy to zrobić w Pandach?

Przede wszystkim zmienimy indeks na naszą kolumnę danych szeregów czasowych . Następnie możemy dokonać próbkowania w górę za pomocą interpolacji, która wypełni wartości, i możemy dokonać próbkowania w dół, aby zwinąć, agregując wartości.

Dane szeregów czasowych w pandach

Przejdźmy do Jupyter Notebook Python i sprawdźmy to z Pandas.

Na początek użyjemy Pandas, wpisując import pandas jako pd , następnie import seaborn as sns w celu wizualizacji oraz import matplotlib.pyplot jako plt w celu dostosowania wizualizacji Seaborn .

Następną rzeczą do zrobienia jest pobranie danych z import data vega_datasets . To miłe miejsce na pobieranie przykładowych źródeł. Ponadto otrzymamy bibliotekę sp = data.sp500 ( ) i sp.head ( ) .

Dane szeregów czasowych w pandach

Oto nasze dotychczasowe dane. Mamy codzienne zwroty i ceny na każdy dzień.

Dane szeregów czasowych w pandach

Aby ustawić kolumnę indeksu na datę, wpisz sp.set_index(['date'], inplace=True), a następnie ponownie wywołaj sp.head .

Dane szeregów czasowych w pandach

Korzystanie z upsamplingu w celu uzyskania wartości

Następnie, aby mieć więcej wartości, użyjmy upsamplingu. Ponieważ mamy dane dla każdego dnia, możemy przejść do godziny, używając najprostszej funkcji, jaką jest sp [['cena']]. resample ('H').fill() , a następnie uruchom go. H oznacza godzinę, M miesiąc, D dzień i tak dalej. Możesz dowiedzieć się więcej na ten temat w dokumentacji Pandy .

Jak widać, 1 stycznia o północy cena wynosi 1394,46, tyle samo co w kolejnych godzinach od 1:00 do 4:00. Innym przykładem jest 2 stycznia, kiedy cena zamknięcia wynosi 1366,42.

Dane szeregów czasowych w pandach

Istnieją inne sposoby, aby to zrobić, nawet jeśli wartość nie jest dostępna na poziomie godzinowym. Ponadto istnieją bardziej wyrafinowane sposoby niż zwykłe wypełnianie w przód . W naszym przykładzie to, co zrobiliśmy, jest podstawowym sposobem na interpolację upsamplingu.

Następnie przejdźmy do próbkowania w dół, wpisując avg_month = sp [['price]].resample ('M').mean ( ) , a następnie avg_month.head ( ) i uruchom go, aby sprawdzić.

Jak pokazano na ilustracji, widzimy ostatni dzień każdego miesiąca i średnią cenę. Możemy zmniejszyć próbki, aby miały mniej wartości lub to, co nazywamy zmniejszeniem.

Dane szeregów czasowych w pandach

Aby to zwizualizować, wpiszmy ponownie narysowane wymiary. Następnie sns.lineplot . Wykres liniowy działa lepiej z dłuższą osią X, podczas gdy wartość Y jest średnią ceną miesięczną.

Aby zobaczyć średnią cenę dla wykreślonego miesiąca, uruchommy to.

Dane szeregów czasowych w pandach

Ponownie, istnieje wiele różnych sposobów, w jakie możemy to zrobić. Na przykład, jeśli chcemy poznać najniższą cenę kwartalną, wszystko, co musimy zrobić, to wpisać kwarta_niska , a następnie kwarta_niska.head , aby go uruchomić.

Tak więc możemy teraz zobaczyć najniższą kwartalną wartość znalezioną w każdym kwartale. W ten sposób wykonuje się ponowne próbkowanie.

Dane szeregów czasowych w pandach


Obsługa brakujących danych w Pythonie przy użyciu metody interpolacji
MultiIndex w pandach dla wielopoziomowych lub hierarchicznych
zestawów danych w pandach z ProfileReport | Python w LuckyTemplates

Wniosek

Podsumowując, Pandy są naprawdę stworzone do ponownego próbkowania i danych szeregów czasowych . Jeśli pracujesz na danych szeregów czasowych i masz różne poziomy szczegółowości, ponowne próbkowanie może być bardzo pomocne.

Ponadto przeczytaj dokumentację Pandas dotyczącą metody ponownego próbkowania, aby dowiedzieć się, jak to zrobić na wiele różnych sposobów. Przyjrzeliśmy się podstawowym, ale możesz robić takie rzeczy, jak co dwa tygodnie, ostatni dzień roboczy miesiąca i więcej opcji ponownego próbkowania.

Wszystkiego najlepszego,

Jerzego Mounta

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.