Panda: come selezionare le righe tra due date


È possibile utilizzare la seguente sintassi per selezionare le righe tra due date specifiche in un DataFrame panda:

 df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

Questo particolare esempio seleziona tutte le righe nel DataFrame tra il 01/02/2022 e il 01/06/2022.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: seleziona le righe tra due date in Pandas

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start=' 1/1/2022 ', periods= 8 ),
                   ' sales ': [18, 20, 15, 14, 10, 9, 8, 12],
                   ' returns ': [5, 7, 7, 9, 12, 3, 2, 4]})

#view DataFrame
print (df)

        date sales returns
0 2022-01-01 18 5
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3
6 2022-01-07 8 2
7 2022-01-08 12 4

Possiamo utilizzare la seguente sintassi per selezionare solo le righe comprese tra la data 01/02/2022 e 01/06/2022:

 #select all rows where date is between 2022-01-02 and 2022-01-06
df[df. date . between (' 2022-01-02 ', ' 2022-01-06 ')]

              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Tieni presente che vengono selezionate solo le righe comprese tra le date 2022-01-02 e 2022-01-06.

Se lo desideri, puoi anche impostare le date di inizio e fine al di fuori della funzione between() :

 #define start and end dates
start_date = ' 2022-01-02 '
end_date = ' 2022-01-06 '

#select all rows where date is between start and end
df[df. date . between (start_date, end_date)]


              date sales returns
1 2022-01-02 20 7
2 2022-01-03 15 7
3 2022-01-04 14 9
4 2022-01-05 10 12
5 2022-01-06 9 3

Ciò produce lo stesso risultato.

Tieni presente che se la colonna della data non è in un formato data/ora riconoscibile, potrebbe essere necessario utilizzare prima il codice seguente per convertirla nel formato data/ora:

 df[' date '] = pd. to_datetime (df[' date ']) 

Dopo averlo fatto, puoi utilizzare la funzione between() per selezionare le righe tra date specifiche.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come creare un intervallo di date in Pandas
Come estrarre il mese dalla data in Pandas
Come convertire il timestamp in data/ora in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *