Panda: come selezionare le righe dataframe in base al timestamp


È possibile utilizzare la seguente sintassi di base per selezionare le righe tra due timestamp in un DataFrame panda:

 df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

Questa sintassi presuppone che tstamp abbia già un tipo datetime.

In caso contrario, puoi utilizzare la seguente sintassi per convertirlo in una colonna datetime:

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

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

Esempio: seleziona le righe Pandas DataFrame in base al timestamp

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite in un negozio al dettaglio:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' tstamp ': ['2022-10-25 04:00:00', '2022-10-25 11:55:12',
                                 '2022-10-26 02:00:00', '2022-10-27 10:30:00',
                                 '2022-10-27 14:25:00', '2022-10-28 01:15:27'],
                   ' sales ': [18, 22, 19, 14, 14, 11]})

#view DataFrame
print (df)

                tstamp sales
0 2022-10-25 04:00:00 18
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Diciamo che vogliamo selezionare solo le righe tra i seguenti due timestamp:

  • 25-10-2022 04:30:00
  • 27-10-2022 11:00:00

Possiamo usare la seguente sintassi per fare questo:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows between two timestamps
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

	tstamp sales
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14

Tieni presente che vengono selezionate solo le righe tra i due timestamp specificati.

Tieni inoltre presente che puoi selezionare le righe in base al timestamp utilizzando solo un valore di data.

Ad esempio, potremmo utilizzare il codice seguente per selezionare tutte le righe con un timestamp maggiore di 2022-10-27:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows with timestamp after 2022-10-27
df[df[' tstamp '] > ' 2022-10-27 ']

	tstamp sales
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Tieni presente che vengono selezionate solo le righe il cui valore nella colonna tsamp è successivo al 27-10-2022.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Come convertire DateTime fino ad oggi in Panda
Come convertire le colonne in DateTime in Pandas
Come ordinare un DataFrame Pandas per data

Aggiungi un commento

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