Filtr pandy według daty

Filtr pandy według daty
Format dat zmienia się w różnych regionach (DD/MM/YY, Rr THRE-MM-DD, YYYY-DD-MM itp.). Praca z wartościami ciągu w zestawie danych jest trudna. Godzinę i datę w formacie ciągów można przekonwertować na dateTime64 przy użyciu metody pand 'to_DateTime (). Ten danych pozwala nam ekstrakcję charakterystyki czasu i daty, od „mikrosekund” do „roku”. Najpierw przekonwertuj wartości daty w danej ramce danych do typu DateTime64 przed filtrowaniem wierszy na podstawie dat. Następnie zdefiniuj warunek filtra za pomocą DataFrame Paint Paint.LOC i DataFrame.Funkcje zapytania. Uzyskaj filtrowaną ramkę danych, która jest podzbiorem danych.

Jak wyodrębnić wartości z pandai opartych na wartościach daty

W poniższych przykładach użyjemy różnych metod do filtrowania kolumn formy danych według wartości daty. Przed filtrowaniem danych daty należy przekonwertować na danych „DATETIME64”.

Przykład 1: Wyodrębnij dane za pomocą DataFrame.Funkcja loc [] na podstawie wartości daty

Za pomocą nazwy kolumn lub tablicy boolowskiej funkcji LOC [] można użyć do pobierania grupy kolumn i wierszy w ramce danych. Tablica (boolean) o prawdziwej wartości, jeżeli wiersz spełnia wymaganie i fałszywa wartość we wszystkich innych przypadkach, jest zwracana przez wyrażenie warunkowe w metodzie LOC []. Funkcja LOC [] zwraca rzędy tylko z prawdziwymi wartościami. Aby utworzyć naszą ramkę danych, używamy PD.Funkcja dataFrame (). Biblioteka Pandy musi zostać zaimportowana najpierw.


Minęliśmy słownik Pythona w PD.Funkcja dataFrame (), aby utworzyć naszą „DF” DataFrame. Wydrukujmy go, aby wizualizować jego treść.


Istnieją dwie kolumny w poprzednim „Nazwa” i „Nazwa” i „Posting_Date”. Kolumna „Nazwa” składa się z nazwisk pracowników jakiejś firmy („Leo”, „Bruce”, „Robert”, „Clay”, „Martin”, „Henry”, „Lana”, „Becky”, „Alexa” , „Dustin”). Kolumna „Posting_date” zawiera zapis daty publikacji każdego pracownika („2022-08-01”, „2022-08-20”, „2022-09-05”, „2022-09-25”, „2022 -09-30 ”,„ 2022-10-10 ”,„ 2022-11-10 ”,„ 2022-12-01 ”,„ 2022-12-10 ”,„ 2022-12-30 ”). Sprawdźmy danych typów kolumn w „DF” DataFrame za pomocą atrybutu DTYPES.


Można zasłużyć, że bieżącym danych kolumn „posting_date” jest „obiektem”. Aby filtrować dane na podstawie wartości daty, konwertujemy je na „DateTime64”.


Aby przekonwertować danych na dateTime64, użyliśmy PD.Funkcja dateTime () i przekazała kolumnę „Posting_Date” jako argument wewnątrz funkcji. Format jest określony. Teraz danych typu kolumny z wartościami dat jest zmieniane na „Timedate64”. Ponownie możesz użyć atrybutu dTypes, aby określić danych typu kolumn.


Data danych Posting_Date jest zmieniana z obiektu na dateTime64. Gdy danych danych jest teraz zmieniane, możemy użyć naszej funkcji LOC [] z warunkami w środku do filtrowania wierszy.


Zastosowaliśmy dwa warunki wewnątrz funkcji LOC [], aby wyodrębnić wiersze z ramki danych, w której data w „Posting_Date” jest równa lub większa niż „22-09-05”, a wartość „Posting_Date” jest mniejsza niż 22- 12-01.


Poprzednie rzędy DataFrame spełniają warunki wewnątrz funkcji LOC [].

Przykład 2: Wyodrębnij dane za pomocą DateTimeIndex (DT) w DataFrame.Funkcja loc []

Kilka właściwości można zwrócić za pomocą DT w celu uzyskania wartości serii jako wartości danych datetimeles. Na przykład „Seria.dt.Data ”atrybut zwraca tablicę Python DateTime Numpy. Utwórzmy kolejną ramkę danych dla tego przykładu.


Rama danych jest tworzona za pomocą słownika PD.Funkcja dataFrame ().


Kolumna „daty” w naszej ramce danych składa się z wartości daty jako ciągi („2021-06-09”, „2021-06-25”, „2021-07-05”, „2021-07-12”, „2021 -08-29 ”,„ 2021-09-15 ”,„ 2021-10-21 ”,„ 2021-11-02 ”,„ 2021-11-10 ”,„ 2021-11-18 ”). Teraz sprawdzamy danych danych DataFrame za pomocą atrybutu DTYPES.


Data danych kolumn „zadanie” i „data” to odpowiednio INT64 i obiekt. Zmieniamy kolumnę „Data” na danych „DateTime64”. Aby zmienić swój danych, używamy funkcji To_DateTime ().


Teraz możemy filtrować dane za pomocą metody LOC []. Najpierw filtrujemy dane bez użycia atrybutu DT do filtrowania danych dla określonych dat.


Poprzedni skrypt pobiera rzędy z datami między listopadem, ponieważ warunek jest określony jako data musi być równa lub większa niż 2021-11-01 i mniejsza niż 2021-11-30.


Możemy również pobrać wiersze o określonych datach lub czasach za pomocą atrybutu DT. Załóżmy, że odzyskujemy rząd na określony dzień powszedni. Indeksowanie dni powszednie zaczyna się od 1 do 7, gdzie 1 jest poniedziałek i 7 to niedziela. Jeśli określamy poniedziałek, używamy wartości indeksu 1.

Przykład 3: Wyodrębnij dane za pomocą .Funkcja zapytania oparta na wartościach daty

Metodę zapytania () można również użyć do filtrowania danych opartych na wartościach daty z DataFrame. Możesz zapytać o metodę zapytania (). Wyrażenie zapytania jest przekazywane jako wejście ciągów do metody zapytań () i musi zwrócić prawda lub fałsz. Rama danych jest zwracana, gdy wyjście jest prawdziwe przez instrukcję zapytania. Utwórzmy ramkę danych, w której używamy funkcji zapytania () do filtrowania danych.


Teraz zmieńmy typ danych kolumny „Przylot” na DateTime64 za pomocą funkcji To_DateTime ().


Korzystając z atrybutu DTypes, sprawdźmy, czy typ danych kolumny „Przylot” jest zmieniany na dateTime64, czy nie.


W miarę zmiany danych, używamy funkcji zapytania () do filtrowania danych z „DF” DataFrame.


Możesz zauważyć, że warunek wewnątrz funkcji zapytania () jest przekazywany jako ciąg, i.mi. „Przyjazd> = '2022-02-05' i przyjazd < '2022-05-15'”. The function returns the rows where the date values in the “arrival” column are equal to or greater than 2022-02-05 and less than 2022-05-15.


Poprzednie wiersze z „DF” DataFrame spełniają warunek wewnątrz funkcji zapytania ().

Przykład 4: Filtruj wiersze między dwiema datami za pomocą funkcji ISIN ()

Metoda ISIN () pomaga w pobraniu wierszy za pomocą jednej (lub wielokrotnej) wartości w określonej kolumnie. „Pandy.Ramka danych.Metoda isin () ”zwraca ramkę danych booleansów, która wskazuje, czy element jest zawarty w danym zakresie. Ta technika pozwala nam odfiltrować rzędy DataFrame w pandy zgodnie z datą. Teraz tworzymy nową przykładową ramkę danych, aby zademonstrować użycie funkcji ISIN () do filtrowania wierszy po zaimportowaniu modułów pandy i.


Gdy tworzyliśmy naszą strumień danych, teraz zmieniamy danych „datę” kolumny na dateTime64, podobnie jak w poprzednich przykładach.


Po zmianie danych na DateTime 64 filtrujemy wiersze za pomocą wierszy z „DF” DataFrame za pomocą funkcji ISIN ().


Minęliśmy PD.Funkcja date_range () obok funkcji isin (). Określiliśmy parametr startowy date_range () jako 2021-12-01 i parametr końcowy jako 2022-02-01. Poprzedni kod zwraca wiersze z ramki danych, które leżą w zakresie.

Wniosek

W tym samouczku staraliśmy się nauczyć, jak filtrować wiersze według wartości daty. Dowiedzieliśmy się, że konwertujemy wartości daty w danej ramce danych do typu DateTime64 przed odfiltrowaniem wierszy na podstawie dat. W tym artykule wdrożyliśmy kilka przykładów, aby nauczyć Cię, w jaki sposób możesz korzystać z DataFrame.Funkcja loc [], .Funkcja zapytania [] i isin () funkcja do filtrowania danych według dat w pandach. Teraz, po przejściu przez ten samouczek, powinieneś być w stanie samodzielnie odfiltrować wiersze.