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.