Panda filtro per data

Panda filtro per data
Il formato delle date varia in diverse regioni (dd/mm/yy, yyyy-mm-dd, yyyy-dd-mm, ecc.). Lavorare con i valori di stringa di date nel set di dati è impegnativo. L'ora e la data in formato stringa possono essere convertiti in DateTime64 utilizzando il metodo TO_DATETIME () di Pandas. Questo tipo di dati ci consente l'estrazione delle caratteristiche dell'ora e della data che vanno dai "microsecondi" a "anno". Innanzitutto, converti i valori della data nel frame dati indicato nel tipo DateTime64 prima di filtrare le righe in base alle date. Quindi, definisci una condizione di filtro utilizzando il telaio del pacchetto Pandas.Loc e DataFrame.funzioni di query. Ottieni il frame dati filtrato che è il sottoinsieme di dati.

Come estrarre i valori dal frame dati Pandas in base ai valori della data

Nei seguenti esempi, utilizzeremo i diversi metodi per filtrare le colonne del frame dati per valori della data. Prima di filtrare i dati, le date devono essere convertite nel tipo di dati "DateTime64".

Esempio 1: estrarre dati utilizzando DataFrame.funzione loc [] in base ai valori della data

Utilizzando i nomi delle colonne o un array booleano, la funzione LOC [] può essere utilizzata per recuperare un gruppo di colonne e righe in un frame dati. Un array (booleano) con un valore reale se la riga soddisfa il requisito e un valore falso in tutti gli altri casi viene restituito dall'espressione condizionale nel metodo LOC []. La funzione loc [] restituisce solo le righe con valori reali. Per creare il nostro frame dati, utilizziamo il PD.Funzione dataframe (). La libreria Pandas deve essere importata prima.


Abbiamo superato un dizionario Python all'interno del PD.Funzione DataFrame () per creare il nostro dataframe "DF". Stampiamolo per visualizzare il suo contenuto.


Ci sono due colonne nel frame dati precedente "Nome" e "Posting_Date". La colonna "Nome" è composta da nomi di dipendenti di alcune società ("Leo", "Bruce", "Robert", "Clay", "Martin", "Henry", "Lana", "Becky", "Alexa" , "Dustin"). La colonna "Posting_date" contiene il record della data di pubblicazione di ciascun dipendente ("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 "). Controlliamo i dati dei dati delle colonne nel frame dati "DF" utilizzando l'attributo dTypes.


Si può obeservare che l'attuale tipo di dati delle colonne "posting_date" sia "oggetto". Per filtrare i dati in base ai valori della data, li convertiamo in "DateTime64".


Per convertire il tipo di dati in datetime64, abbiamo usato il PD.funzione datetime () e ha superato la colonna "posting_date" come argomento all'interno della funzione. Il formato è specificato. Ora, il tipo di dati della colonna con i valori della data viene modificato in "TimeDate64". Ancora una volta, è possibile utilizzare l'attributo dTypes per determinare il tipo di data di colonne.


Il tipo di dati di POSTING_DATE viene modificato da oggetto a DateTime64. Man mano che il tipo di dati viene modificato ora, possiamo usare la nostra funzione loc [] con condizioni al suo interno per filtrare le righe.


Abbiamo applicato due condizioni all'interno della funzione LOC [] per estrarre le righe dal frame dati in cui la data in "POSTING_DATE" è uguale o maggiore di "22-09-05" e il valore di "Posting_Date" è inferiore a 22- 12-01.


Le precedenti righe del frame dati soddisfano le condizioni all'interno della funzione LOC [].

Esempio 2: estrarre i dati utilizzando DateTimeIndex (DT) in DataFrame.Loc [] funzione

Diverse proprietà possono essere restituite utilizzando DT per ottenere i valori della serie come valori DateTimelike. Ad esempio, la "serie.dt.Attributo Date ”restituisce un array Numpy Python DateTime. Creiamo un altro telaio di dati per questo esempio.


Il frame dati viene creato utilizzando il lato del dizionario del PD.Funzione dataframe ().


La colonna "Data" nel nostro frame dati è composta da valori della data come stringhe ("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 "). Ora controlliamo il tipo di dati di dati con l'aiuto dell'attributo dTypes.


Il tipo di dati delle colonne "attività" e "data" sono rispettivamente int64 e oggetto. Modifichiamo la colonna "Data" in Datatype "DateTime64". Per modificare il suo tipo di dati, utilizziamo la funzione To_Datetime ().


Ora possiamo filtrare i dati utilizzando il metodo LOC []. Innanzitutto, filtriamo i dati senza utilizzare l'attributo DT per filtrare i dati per date specifiche.


Lo script precedente recupera le righe con le date tra novembre poiché la condizione è specificata in quanto la data deve essere uguale o superiore al 2021-11-01 e meno del 2021-11-30.


Possiamo anche recuperare le righe con date o tempi specifici usando l'attributo DT. Supponiamo di recuperare la riga per un giorno feriale specifico. L'indicizzazione dei giorni feriali inizia da 1 a 7 dove 1 è lunedì e 7 è domenica. Se specifichiamo lunedì, utilizziamo il valore dell'indice 1.

Esempio 3: estrarre i dati utilizzando .Funzione query [] in base ai valori della data

Il metodo query () può anche essere utilizzato per filtrare i dati in base ai valori della data dal frame dati. È possibile eseguire query sul metodo DataFrame utilizzando il metodo query (). Un'espressione di query viene passata come input di stringa al metodo query () e deve restituire vero o falso. Il frame dati viene restituito quando l'output è vero per l'istruzione query. Creiamo un frame dati in cui utilizziamo la funzione query () per filtrare i dati.


Ora, modifichiamo il tipo di dati della colonna "Arrivo" in DateTime64 utilizzando la funzione TO_DATETIME ().


Utilizzando l'attributo dTypes, verifichiamo se la colonna del tipo di dati di "Arrivo" viene modificata in DateTime64 o no.


Man mano che il tipo di dati viene modificato, utilizziamo la funzione query () per filtrare i dati dal frame dati "DF".


Puoi osservare che la condizione all'interno della funzione query () viene passata come stringa, i.e. “Arrivo> = '2022-02-05' e arrivo < '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.


Le righe precedenti dal telaio dati "DF" soddisfano la condizione all'interno della funzione query ().

Esempio 4: filtrare le righe tra due date usando la funzione isin ()

Il metodo isin () aiuta a recuperare le righe con un valore singolo (o multiplo) in una colonna specifica. I "panda.DataFrame.ISIN () "Il metodo restituisce un telaio di dati di booleani che indica se un elemento è incluso nell'intervallo dato. Questa tecnica ci consente di filtrare le righe di dati in panda in base alla data. Ora creiamo un nuovo telaio di dati per dimostrare l'uso della funzione isin () per filtrare le righe dopo l'importazione di panda e moduli numpy.


Mentre abbiamo creato il nostro Frame Data, ora cambiamo il tipo di dati della colonna "Data" in DateTime64 come abbiamo fatto negli esempi precedenti.


Dopo aver modificato il tipo di dati in DateTime 64, filtriamo le righe utilizzando le righe dalla funzione di dati "DF" utilizzando la funzione ISIN ().


Abbiamo superato il PD.funzione date_range () accanto alla funzione isin (). Abbiamo specificato il parametro Start di Date_Range () come 2021-12-01 e il parametro di fine AS 2022-02-01. Il codice precedente restituisce le righe dal frame dati che si trovano all'interno dell'intervallo.

Conclusione

In questo tutorial, abbiamo cercato di insegnarti come filtrare le righe per valori della data. Abbiamo appreso che convertiamo i valori della data nel tipo di dati forniti nel tipo DateTime64 prima di filtrare le righe in base alle date. Abbiamo implementato alcuni esempi in questo articolo per insegnarti come puoi utilizzare il frame dati.Loc [] funzione, .funzione query [] e funzione isin () per filtrare i dati per date in panda. Ora, dopo aver attraversato questo tutorial, dovresti essere in grado di filtrare le righe da solo.