Panda: come calcolare il timedelta in mesi


È possibile utilizzare la seguente funzione per calcolare un delta temporale in mesi tra due colonne di un DataFrame panda:

 def month_diff(x, y):
    end = x. dt . to_period (' M '). view (dtype=' int64 ')
    start = y. dt . to_period (' M '). view (dtype=' int64 ')
    return end-start

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

Esempio: calcola Timedelta in mesi in Panda

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' event ': ['A', 'B', 'C'],
                   ' start_date ': ['20210101', '20210201', '20210401'],
                   ' end_date ': ['20210608', '20210209', '20210801'] })

#convert start date and end date columns to datetime
df[' start_date '] = pd. to_datetime (df[' start_date '])
df[' end_date '] = pd. to_datetime (df[' end_date '])

#view DataFrame
print (df)

  event start_date end_date
0 A 2021-01-01 2021-06-08
1 B 2021-02-01 2021-02-09
2 C 2021-04-01 2021-08-01

Supponiamo ora di voler calcolare il delta temporale (in mesi) tra le colonne start_date e end_date .

Per fare ciò, definiremo innanzitutto la seguente funzione:

 #define function to calculate time delta in months between two columns
def month_diff(x, y):
    end = x. dt . to_period (' M '). view (dtype=' int64 ')
    start = y. dt . to_period (' M '). view (dtype=' int64 ')
    return end-start

Successivamente, utilizzeremo questa funzione per calcolare il delta temporale in mesi tra le colonne start_date e end_date :

 #calculate month difference between start date and end date columns
df[' month_difference '] = month_diff(df. end_date , df. start_date )

#view updated DataFrame
df

    event start_date end_date month_difference
0 A 2021-01-01 2021-06-08 5
1 B 2021-02-01 2021-02-09 0
2 C 2021-04-01 2021-08-01 4

La colonna Month_difference mostra il delta temporale (in mesi) tra le colonne start_date e end_date .

Risorse addizionali

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

Come convertire le colonne in DateTime in Pandas
Come convertire DateTime fino ad oggi in Panda
Come estrarre il mese dalla data in Pandas

Aggiungi un commento

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