Λύθηκε: μετατροπή της στήλης ημερομηνίας γέννησης σε pandas ηλικίας

Στον σημερινό κόσμο, η ανάλυση δεδομένων έχει γίνει ολοένα και πιο σημαντική και ένα από τα πιο δημοφιλή εργαλεία που χρησιμοποιούν οι αναλυτές δεδομένων και οι επιστήμονες δεδομένων είναι η Python με τη βιβλιοθήκη pandas. Το Pandas είναι ένα ισχυρό εργαλείο ανάλυσης και χειρισμού δεδομένων ανοιχτού κώδικα που επιτρέπει τον εύκολο χειρισμό δομών και σειρών δεδομένων. Ένα κοινό πρόβλημα που αντιμετωπίζουν οι χρήστες είναι η μετατροπή των ημερομηνιών γέννησης σε ηλικίες για πιο ακριβή και πρακτική ανάλυση. Σε αυτό το άρθρο, θα εμβαθύνουμε στον τρόπο αντιμετώπισης αυτού του ζητήματος με σαφή παραδείγματα και επεξηγήσεις της εφαρμογής κώδικα.

Το Pandas είναι ένα ευέλικτο εργαλείο που συχνά περιλαμβάνει εργασία με αντικείμενα DateTime – αυτό συμβαίνει όταν ασχολούμαστε με ημερομηνίες γέννησης. Το πρώτο βήμα για τη μετατροπή των ημερομηνιών γέννησης σε ηλικία απαιτεί απλή αριθμητική με τη βιβλιοθήκη DateTime. Αυτό θα μας επιτρέψει να βρούμε την ηλικία των ατόμων υπολογίζοντας τη διαφορά μεταξύ της ημερομηνίας γέννησής τους και της τρέχουσας ημερομηνίας.

Ας ξεκινήσουμε εισάγοντας τις απαραίτητες βιβλιοθήκες:

import pandas as pd
from datetime import datetime

Στη συνέχεια, εξετάστε ένα απλό σύνολο δεδομένων που περιέχει τα ακόλουθα δεδομένα για άτομα:

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'])

Στον παραπάνω κώδικα, μετατρέπουμε τη στήλη 'Birth_Date' σε αντικείμενα DateTime.

Υπολογισμός ηλικίας

Τώρα, είμαστε έτοιμοι να υπολογίσουμε τις ηλικίες αυτών των ατόμων βρίσκοντας τη διαφορά μεταξύ της ημερομηνίας γέννησής τους και της τρέχουσας ημερομηνίας. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

1. Δημιουργήστε μια συνάρτηση που ονομάζεται 'calculate_age' που λαμβάνει μια ημερομηνία γέννησης ως είσοδο και επιστρέφει την ηλικία του ατόμου.
2. Εφαρμόστε αυτήν τη συνάρτηση στη στήλη «Ημερομηνία_Γέννησης» στο DataFrame.

Ακολουθεί ο κώδικας για την εφαρμογή της παραπάνω λογικής:

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)

Σε αυτό το απόσπασμα κώδικα, δημιουργήσαμε μια συνάρτηση που ονομάζεται "calculate_age" που λαμβάνει ως είσοδο μια ημερομηνία_γέννησης, υπολογίζει την τρέχουσα ημερομηνία χρησιμοποιώντας την datetime.now() και υπολογίζει την ηλικία του ατόμου αφαιρώντας το έτος γέννησής του από το τρέχον έτος. Αν τους Η ημερομηνία γέννησης δεν έχει συμβεί φέτος, αφαιρούμε ένα επιπλέον έτος.

Τέλος, εφαρμόζουμε αυτήν τη συνάρτηση στη στήλη 'Ημερομηνία_Γέννησης' χρησιμοποιώντας τη μέθοδο apply() και οι υπολογισμένες ηλικίες αποθηκεύονται σε μια νέα στήλη 'Ηλικία' στο DataFrame.

Χρήση Numpy και Pandas για υπολογισμό ηλικίας

Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε την ισχυρή βιβλιοθήκη numpy σε συνδυασμό με πάντα για αυτήν την εργασία. Για να μετατρέψετε τις ημερομηνίες γέννησης σε ηλικίες χρησιμοποιώντας το numpy, ακολουθήστε αυτά τα βήματα:

1. Εισαγάγετε τη βιβλιοθήκη numpy.
2. Χρησιμοποιήστε τη συνάρτηση numpy 'floor' για να υπολογίσετε την ηλικία.

Ακολουθεί ένα παράδειγμα για το πώς να το κάνετε αυτό:

import numpy as np

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

Αυτός ο κώδικας χρησιμοποιεί τη συνάρτηση 'floor' του numpy για να στρογγυλοποιήσει προς τα κάτω το αποτέλεσμα διαίρεσης κινητής υποδιαστολής του αριθμός ημερών από την ημερομηνία γέννησης κατά 365.25 (λαμβάνοντας υπόψη τα δίσεκτα έτη).

Συνοπτικά, αξιοποιώντας βιβλιοθήκες όπως panda και datetime ή pandas and numpy, καθίσταται απρόσκοπτη η μετατροπή των στηλών ημερομηνίας γέννησης σε ηλικία εντός ενός συνόλου δεδομένων. Ακολουθώντας τα επεξηγημένα βήματα και κατανοώντας τον κώδικα που παρέχεται σε αυτό το άρθρο, θα σας οπλίσει με τις γνώσεις για να χειριστείτε τέτοια δεδομένα και να πραγματοποιήσετε μια πιο αποτελεσματική και ακριβή ανάλυση.

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο