Vyriešené: preveďte stĺpec dátumu narodenia na vek pandy

V dnešnom svete sa analýza údajov stáva čoraz dôležitejšou a jedným z najpopulárnejších nástrojov používaných analytikmi údajov a vedcami údajov je Python s knižnicou pandas. Pandas je výkonný nástroj na analýzu a manipuláciu s dátami s otvoreným zdrojom, ktorý umožňuje jednoduchú manipuláciu s dátovými štruktúrami a sériami. Jedným z bežných problémov, s ktorými sa používatelia stretávajú, je prevod dátumov narodenia na vek pre presnejšiu a praktickejšiu analýzu. V tomto článku sa ponoríme do toho, ako tento problém vyriešiť, pomocou jasných príkladov a vysvetlení implementácie kódu.

Pandas je všestranný nástroj, ktorý často zahŕňa prácu s objektmi DateTime – to je prípad pri práci s dátumami narodenia. Prvý krok na prevod dátumov narodenia na vek vyžaduje jednoduchú aritmetiku s knižnicou DateTime. To nám umožní zistiť vek jednotlivcov vypočítaním rozdielu medzi ich dátumom narodenia a aktuálnym dátumom.

Začnime importovaním potrebných knižníc:

import pandas as pd
from datetime import datetime

Ďalej zvážte jednoduchý súbor údajov obsahujúci nasledujúce údaje o jednotlivcoch:

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

Vo vyššie uvedenom kóde konvertujeme stĺpec 'Birth_Date' na objekty DateTime.

Výpočet veku

Teraz sme pripravení vypočítať vek týchto jedincov nájdením rozdielu medzi ich dátumom narodenia a aktuálnym dátumom. Ak to chcete urobiť, postupujte takto:

1. Vytvorte funkciu s názvom 'calculate_age', ktorá berie ako vstup dátum narodenia a vracia vek osoby.
2. Použite túto funkciu na stĺpec 'Birth_Date' v DataFrame.

Tu je kód na implementáciu vyššie uvedenej logiky:

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 tomto úryvku kódu sme vytvorili funkciu s názvom 'calculate_age', ktorá prijíma dátum narodenia ako vstup, vypočítava aktuálny dátum pomocou datetime.now() a vypočítava vek osoby odčítaním roku narodenia od aktuálneho roku. Ak ich dátum narodenia tento rok nenastal, odpočítame ďalší rok.

Nakoniec túto funkciu aplikujeme na stĺpec 'Birth_Date' pomocou metódy apply() a vypočítaný vek sa uloží do nového stĺpca 'Age' v DataFrame.

Použitie Numpy a Pandy na výpočet veku

Prípadne môžeme na túto úlohu využiť výkonnú knižnicu numpy v kombinácii s pandami. Ak chcete previesť dátumy narodenia na vek pomocou numpy, postupujte takto:

1. Importujte knižnicu numpy.
2. Na výpočet veku použite funkciu numpy 'floor'.

Tu je príklad, ako to urobiť:

import numpy as np

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

Tento kód používa funkciu numpy 'floor' na zaokrúhlenie výsledku delenia s pohyblivou rádovou čiarkou smerom nadol počet dní od dátumu narodenia o 365.25 (s prihliadnutím na priestupné roky).

Stručne povedané, využitím knižníc, ako sú pandy a datetime alebo pandy a numpy, je možné bez problémov previesť stĺpce dátumu narodenia na vek v rámci súboru údajov. Dodržiavanie vysvetlených krokov a pochopenie kódu uvedeného v tomto článku vás vyzbrojí znalosťami na manipuláciu s takýmito údajmi a na vykonanie efektívnejšej a presnejšej analýzy.

Súvisiace príspevky:

Pridať komentár