Rešeno: pretvorite stolpec rojstnega datuma v starost pand

V današnjem svetu postaja analiza podatkov vse pomembnejša in eno najbolj priljubljenih orodij, ki jih uporabljajo podatkovni analitiki in podatkovni znanstveniki, je Python s knjižnico pandas. Pandas je zmogljivo, odprtokodno orodje za analizo in obdelavo podatkov, ki omogoča enostavno manipulacijo podatkovnih struktur in serij. Ena pogosta težava, s katero se srečujejo uporabniki, je pretvorba rojstnih datumov v starost za natančnejšo in praktično analizo. V tem članku se bomo poglobili v to, kako se lotiti te težave z jasnimi primeri in razlagami implementacije kode.

Pandas je vsestransko orodje, ki pogosto vključuje delo s predmeti DateTime – to velja za primere z rojstnimi datumi. Prvi korak za pretvorbo rojstnih datumov v starost zahteva preprosto aritmetiko s knjižnico DateTime. To nam bo omogočilo, da ugotovimo starost posameznikov z izračunom razlike med datumom njihovega rojstva in trenutnim datumom.

Začnimo z uvozom potrebnih knjižnic:

import pandas as pd
from datetime import datetime

Nato razmislite o preprostem naboru podatkov, ki vsebuje naslednje podatke o posameznikih:

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

V zgornji kodi pretvarjamo stolpec »Birth_Date« v objekte DateTime.

Izračun starosti

Zdaj smo pripravljeni izračunati starost teh posameznikov tako, da ugotovimo razliko med datumom njihovega rojstva in trenutnim datumom. Če želite to narediti, sledite tem korakom:

1. Ustvarite funkcijo, imenovano 'calculate_age', ki vzame datum rojstva kot vhod in vrne starost osebe.
2. Uporabite to funkcijo za stolpec 'Birth_Date' v DataFrame.

Tukaj je koda za implementacijo zgornje logike:

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)

V tem delčku kode smo ustvarili funkcijo, imenovano 'calculate_age', ki kot vhod prejme rojstni_datum, izračuna trenutni datum z uporabo datetime.now() in izračuna starost osebe tako, da odšteje njihovo leto rojstva od trenutnega leta. Če njihovo rojstni datum se letos ni zgodil, odštejemo dodatno leto.

Nazadnje to funkcijo uporabimo v stolpcu 'Birth_Date' z uporabo metode apply(), izračunana starost pa se shrani v nov stolpec 'Age' v DataFrame.

Uporaba programov Numpy in Pandas za izračun starosti

Druga možnost je, da za to nalogo uporabimo zmogljivo knjižnico numpy v kombinaciji s pandami. Če želite rojstne datume pretvoriti v starost z uporabo numpy, sledite tem korakom:

1. Uvozite knjižnico numpy.
2. Za izračun starosti uporabite funkcijo numpy 'floor'.

Tukaj je primer, kako to storiti:

import numpy as np

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

Ta koda uporablja numpyjevo funkcijo 'floor' za zaokroževanje navzdol rezultata deljenja s plavajočo vejico število dni od datuma rojstva za 365.25 (ob upoštevanju prestopnih let).

Če povzamemo, z uporabo knjižnic, kot sta pandas in datetime ali pandas in numpy, postane pretvorba stolpcev rojstnih datumov v starost znotraj nabora podatkov nemotena. Če sledite razloženim korakom in razumete kodo v tem članku, se boste oborožili z znanjem za manipulacijo s takšnimi podatki ter izvedbo učinkovitejše in natančnejše analize.

Podobni objav:

Pustite komentar