Panda: come ottenere il giorno dell'anno dalla data


È possibile utilizzare la seguente sintassi di base per ottenere il giorno dell’anno da una colonna di data in un DataFrame panda:

 df[' day_of_year '] = df[' date ']. dt . dayofyear

Questo particolare esempio crea una nuova colonna denominata day_of_year che contiene il giorno dell’anno del valore nella colonna della data .

Tieni presente che i valori day_of_year varieranno da 1 (1 gennaio) a 365 (31 dicembre).

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

Esempio: ottieni il giorno dell’anno dalla data in Panda

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite totali effettuate in un negozio in date diverse:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd.date_range (start=' 1/1/2022 ', freq=' M ', periods= 10 ),
                   ' sales ': [6, 8, 10, 5, 4, 8, 8, 3, 5, 14]})

#view DataFrame
print (df)

         dirty date
0 2022-01-31 6
1 2022-02-28 8
2 2022-03-31 10
3 2022-04-30 5
4 2022-05-31 4
5 2022-06-30 8
6 2022-07-31 8
7 2022-08-31 3
8 2022-09-30 5
9 2022-10-31 14

Correlato: Come creare un intervallo di date in Pandas

Possiamo utilizzare il codice seguente per creare una nuova colonna chiamata day_of_year che contiene il giorno dell’anno dalla colonna della data :

 #create new column that contains day of year in 'date' column
df[' day_of_year '] = df[' date ']. dt . dayofyear

#view updated DataFrame
print (df)

        date sales day_of_year
0 2022-01-31 6 31
1 2022-02-28 8 59
2 2022-03-31 10 90
3 2022-04-30 5 120
4 2022-05-31 4 151
5 2022-06-30 8,181
6 2022-07-31 8,212
7 2022-08-31 3,243
8 2022-09-30 5,273
9 2022-10-31 14,304

La nuova colonna denominata day_of_year contiene il giorno dell’anno della colonna della data .

Va notato che se si lavora con un anno bisestile, questa funzione estenderà automaticamente l’intervallo di valori possibili da 365 a 366.

Tieni inoltre presente che se la colonna con cui stai lavorando è una colonna di tipo stringa, devi prima utilizzare pd.to_datetime() per convertire le stringhe in date riconoscibili:

 #convert string column to datetime and calculate day of year
df[' day_of_year '] = pd. to_datetime (df[' date ']). dt . dayofyear

Nota : puoi trovare la documentazione completa della funzione Pandas Dayofyear qui .

Risorse addizionali

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

Come aggiungere e sottrarre giorni da una data in Pandas
Come selezionare le righe tra due date in Pandas
Come creare una colonna di date da anno, mese e giorno in Pandas

Aggiungi un commento

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