Pandas ponowne próbkowania

Pandas ponowne próbkowania

„Dane szeregów czasowych często muszą być skompilowane lub podsumowane za pomocą nowego ramy czasowej. Te dane szeregów czasowych są zwykle przetwarzane przy użyciu pandy „DataFrame.funkcja resample () ”. Jest to praktyczne podejście do próbkowania szeregów czasowych i częstotliwości konwersji."

Aby użyć tej metody, musimy śledzić składnię podaną poniżej:

Przyjrzymy się praktyczne wykonanie metody „resample ()” z różnymi technikami w tym przewodniku.

Przykład nr 1: Wykorzystanie metody resample () do obliczenia suma

Do ponownego próbkowania danych szeregów czasowych wykorzystamy metodę panda „resample ()”. Zobaczymy wykonanie skryptu Pythona w celu ponownego próbkowania danych szeregów czasowych w celu znalezienia częstotliwości w określonych dniach.

Pierwszym i podstawowym wymogiem jest narzędzie lub oprogramowanie, które zapewnia nam środowisko do kompilacji i realizacji programu. Wybraliśmy narzędzie Spyder do implementacji przykładowych kodów. Otworzyliśmy interfejs Spyder; nowy plik z „.Rozszerzenie PY ”zostało uruchomione. Teraz zacznij pisać skrypt Python.

Wymaganiem scenariusza tutaj jest biblioteka „Pandy”. Wynika to z faktu, że metoda „resample ()” jest metodą pandas. Aby móc go używać w skrypcie, musimy najpierw zaimportować bibliotekę, która ją trzyma. Załadowaliśmy więc bibliotekę pandy do naszego pliku Python i stworzyliśmy „PD” do użycia jako alias „pandy” w całym programie.

Kod rozpoczął się od wywołania „PD.Funkcja date_range () ”. Wygeneruje zakres dat z dostarczonymi limitami. Tworzymy zakres dat, ponieważ Metoda „Resample ()” Pandas działa w serii DATE_TIME. Pomiędzy nawiasami funkcji zdefiniowaliśmy datę jako „2022/2/3”. To jest początkowa wartość zakresu daty. Drugi parametr, „okres”, zdefiniuje liczbę krotek dla daty, dla której określiliśmy „15”, więc zakres dat rozpoczyna się od „2022/2/3” i idzie do 15 krotek. Tutaj częstotliwość jest „d”, co domyślnie oznacza „dzień”. Tak więc przedziały zostaną wygenerowane na podstawie dni. „PD.Metoda date_range () ”utworzy zakres dat 15 dni. Aby zapisać zakres dat wyjściowych, zainicjowaliśmy zmienną „index_col”. Teraz możemy uzyskać dostęp do zakresu dat, wspominając o tej zmiennej.

Następnie musimy skonstruować pandasframe. Aby skonstruować ramkę danych z wartościami zdefiniowanymi przez użytkownika, pandy zapewniają nam funkcję „PD.Ramka danych()". Nazwaliśmy tę metodę do naszego programu i zainicjowaliśmy ją z 3 kolumnami, które są „dziwne”, „nawet” i „prime”. Wartości zdefiniowane dla każdej kolumny mają tę samą długość, czyli 15.

Pierwsza kolumna „dziwna” trzyma liczby nieparzyste jako swoje wartości. Wartości te to „1”, „3”, „5”, „7”, „9”, „11”, „13”, „15”, „17”, „19”, „21”, „23” , „25”, „27” i „29”. Liczby są przechowywane w kolumnie „nawet” jako „2”, „4”, „6”, „8”, „10”, „12”, „14”, „16”, „18”, „20” , „22”, „24”, „26”, „28” i „30”. Podczas gdy ostatnia kolumna „Prime” ma pierwsze 15 liczb pierwszych jako swoje wartości: „1”, „2”, „3”, „5”, „7”, „11”, „13”, „17” , „19”, „23”, „29”, „31”, „37”, „41” i „47”.

Zaraz po zdefiniowaniu wartości dla wszystkich kolumn w „PD.Metoda dataFrame () ”, również ustawiliśmy naszą kolumnę indeksu. Zrobiliśmy to, używając właściwości „indeks” DataFrame i przypisując ją zmienną „indeks_col”, która utrzymuje serię zakresu dat. Oznacza to, że ustawiamy zakres dat jako kolumnę indeksu naszego DataFrame zamiast domyślnej listy indeksu. Obiekt „liczb” zachowa wynik, który zostanie wygenerowany, gdy przywołujemy „PD.Funkcja dataFrame () ”. Rrama danych jest ostatecznie wyświetlana przez zastosowanie metody „print ()”. Ta metoda po prostu wykazuje wszystko, co jest dostarczane jako wkład do niej. Wprowadziliśmy obiekty „liczby”, aby pokazać go na terminalu.

Wykonany program generuje wyjście, w którym widzimy, żeFrame ma 3 kolumny, „nieparzyste”, „nawet” i „prime”, podczas gdy kolumna indeksu ma zakres dat, który zaczyna się od „2022-02-03” i końców na „2022-02-17”, tworząc 15-dniowy odstęp.

Teraz przeprowadzimy ponowne próbkowanie tej formy danych. Pandy „resample ()” współpracuje z dateTimeIndex. Ta metoda przyjmuje dane szeregów czasowych jako dane wejściowe i przekształca dane szeregów czasowych w różne zdefiniowane częstotliwości.

W przypadku tej ilustracji zmienimy częstotliwość datetimeIndex z interwału 1-dniowego na 2-dniowy odstęp. Przywołaliśmy „PD.resample ().metoda sum () ”. Metoda „resample ()” zadeklaruje częstotliwość, podczas gdy funkcja „sum ()” obliczy sumę dni dla dostarczonej częstotliwości. Podaliśmy nazwę DataFrame jako „liczby” z „.resample ().metoda sum () ”.

Parametr „reguła” jest przekazywana do metody „resample ()”, a jej wartość jest ustawiona na „2D”, co oznacza utworzenie częstotliwości interwału 2-dniowego, a następnie obliczyć sumę wartości w ramce danych dla kompletu danych 2 kolejne dni. Powstała ponowna próbka danych zostanie zapisana w zmiennej „dwa_day”. Na koniec zaprezentowaliśmy go na ekranie za pomocą funkcji „print ()”.

Tutaj obraz wyjściowy wyświetla ponownie próbkowaną ramkę danych, w której mamy 8 rekordów. Częstotliwość została ustalona dla 2D dla dateTimeIndex, a suma wartości jest obliczana dla interwału 2D.

Przykład nr 2: Wykorzystanie metody resample () do obliczenia średniej

Pierwsza demonstracja wykorzystała funkcję „sum ()” do obliczenia suma ponownego próbkowanych danych z częstotliwością 2 dni. Oprócz obliczania sumy stosujemy również inne metody metodą „resample ()”. W tej ilustracji użyjemy funkcji „Mean ()” do obliczenia średniej ponownych próbkowanych danych z cotygodniową częstotliwością.

Korzystamy z tej samej ramki danych, które zostały utworzone we wcześniejszej instancji. „DF.funkcja resample () ”jest stosowana z„.metoda () ”. Przywołaliśmy tę metodę z 2 parametrami; „Reguła” i „zamknięta”. Parametr „reguły” zajmuje długość czasu dla potrzebnej konwersji. Ponieważ chcemy konwersji w cotygodniowych danych szeregach czasowych, dlatego wprowadziliśmy „W”; Używany na tydzień. Drugi parametr „zamknięty” jest domyślnie ustawiony na „w prawo” dla częstotliwości „W”, ale tutaj zmieniliśmy go na „lewy”. Oznacza to, że interwał na lewym pojemniku jest włączający, a odstęp na prawym pojemniku jest ograniczony.

Następnie użyliśmy „.Mean () ”funkcja, która obliczy średnią wartości w odstępach tygodnia. Ostateczna ramka danych będzie przechowywana przez zmienną „przeciętną”. Funkcja „print ()” wyświetli ją na konsoli Python.

Kiedy kompilujemy program Python, otrzymujemy tenframe, który zawiera tylko 3 rekordy. Obliczył średnie wartości dla tygodnia w każdej kolumnie.

W ten sam sposób możemy przekonwertować częstotliwość w miesiąc, używając „M”, do kwartalnego użycia „Q”, do użytku godzinowego „H”, przez sekundy użyć „S”, a wiele innych opcji należy zastosować zgodnie z Wymaganie.

Wniosek

Dane szeregów czasowych czasami muszą być przekonwertowane na nową częstotliwość. Pandy dostarczają nam metody „DF.resample () ”, aby poradzić sobie z tą potrzebą. W tym artykule pokazano dwie różne metody ponownego próbkowania danych za pomocą DateTimeIndex. Przeprowadziliśmy różne techniki obliczania różnych danych interwałowych. Pierwszy przykład opracował obliczenie sumę 2 -dniowej częstotliwości do ponownego próbkowania danych, podczas gdy 2Nd Przykład został przeprowadzony, aby znaleźć średnią wartości na cotygodniowych bazach. Każda technika ma przykładowy kod programu i odpowiednie wyjście.