Risolto: converti la colonna della data di nascita in età panda

Nel mondo di oggi, l'analisi dei dati è diventata sempre più importante e uno degli strumenti più popolari utilizzati da analisti di dati e data scientist è Python con la libreria panda. Pandas è un potente strumento di analisi e manipolazione dei dati open source che consente una facile manipolazione di strutture e serie di dati. Un problema comune riscontrato dagli utenti è la conversione delle date di nascita in età per un'analisi più accurata e pratica. In questo articolo, approfondiremo come affrontare questo problema con chiari esempi e spiegazioni dell'implementazione del codice.

Pandas è uno strumento versatile che spesso implica lavorare con oggetti DateTime, questo è il caso quando si tratta di date di nascita. Il primo passaggio per convertire le date di nascita in età richiede una semplice operazione aritmetica con la libreria DateTime. Questo ci permetterà di trovare l'età delle persone calcolando la differenza tra la loro data di nascita e la data attuale.

Iniziamo importando le librerie necessarie:

import pandas as pd
from datetime import datetime

Quindi, considera un semplice set di dati contenente i seguenti dati sugli individui:

data = {'Name': ['John', 'Paul', 'George', 'Ringo'],
        'Birth_Date': ['1940-10-09', '1942-06-18', '1943-02-25', '1940-07-07']
       }

df = pd.DataFrame(data)
df['Birth_Date'] = pd.to_datetime(df['Birth_Date'])

Nel codice sopra, stiamo convertendo la colonna 'Birth_Date' in oggetti DateTime.

Calcolo dell'età

Ora siamo pronti per calcolare l'età di questi individui trovando la differenza tra la loro data di nascita e la data attuale. Per fare ciò, attenersi alla seguente procedura:

1. Crea una funzione chiamata 'calculate_age' che accetta una data di nascita come input e restituisce l'età della persona.
2. Applicare questa funzione alla colonna 'Birth_Date' nel DataFrame.

Ecco il codice per implementare la logica di cui sopra:

def calculate_age(birth_date):
    today = datetime.now()
    age = today.year - birth_date.year - ((today.month, today.day) <
                                          (birth_date.month, birth_date.day))
    return age

df['Age'] = df['Birth_Date'].apply(calculate_age)

In questo frammento di codice, abbiamo creato una funzione chiamata 'calculate_age' che riceve un birth_date come input, calcola la data corrente utilizzando datetime.now() e calcola l'età della persona sottraendo il suo anno di nascita dall'anno corrente. Se il loro la data di nascita non è avvenuta quest'anno, sottraiamo un anno in più.

Infine, applichiamo questa funzione sulla colonna 'Birth_Date' utilizzando il metodo apply() e le età calcolate vengono memorizzate in una nuova colonna 'Age' nel DataFrame.

Utilizzo di Numpy e Panda per il calcolo dell'età

In alternativa, possiamo utilizzare la potente libreria numpy in combinazione con i panda per questo compito. Per convertire le date di nascita in età usando numpy, segui questi passaggi:

1. Importa la libreria numpy.
2. Utilizzare la funzione numpy 'floor' per calcolare l'età.

Ecco un esempio di come eseguire questa operazione:

import numpy as np

df['Age'] = np.floor((datetime.now() - df['Birth_Date']).dt.days / 365.25)

Questo codice utilizza la funzione 'floor' di numpy per arrotondare per difetto il risultato della divisione in virgola mobile di numero di giorni dalla data di nascita entro 365.25 (tenendo conto degli anni bisestili).

In sintesi, sfruttando librerie come panda e datetime o panda e numpy, diventa semplice convertire le colonne della data di nascita in età all'interno di un set di dati. Seguendo i passaggi spiegati e comprendendo il codice fornito in questo articolo, avrai le conoscenze necessarie per manipolare tali dati ed eseguire un'analisi più efficiente e accurata.

Related posts:

Lascia un tuo commento