Kuxazululiwe: guqula ikholomu yedethi yokuzalwa ibe ama-panda eminyaka

Emhlabeni wanamuhla, ukuhlaziywa kwedatha sekubaluleke kakhulu, futhi elinye lamathuluzi aziwa kakhulu asetshenziswa abahlaziyi bedatha nososayensi bedatha yiPython nomtapo wezincwadi we-pandas. I-Pandas iyithuluzi elinamandla, lomthombo ovulekile lokuhlaziya idatha kanye nethuluzi lokukhohlisa elivumela ukukhohliswa kalula kwezakhiwo zedatha nochungechunge. Inkinga eyodwa evamile abasebenzisi abahlangabezana nayo ukuguqula izinsuku zokuzalwa zibe ubudala ukuze kuhlaziywe okunembe kakhudlwana nokusebenzayo. Kulesi sihloko, sizocubungula ukuthi singabhekana kanjani nalolu daba ngezibonelo ezicacile nezincazelo zokusetshenziswa kwekhodi.

I-Pandas iyithuluzi elisebenza ngezindlela eziningi elivame ukubandakanya ukusebenza nezinto ze-DateTime - lokhu kunjalo lapho kukhulunywa ngezinsuku zokuzalwa. Isinyathelo sokuqala sokuguqula izinsuku zokuzalwa zibe ubudala sidinga i-arithmetic elula nelabhulali ye-DateTime. Lokhu kuzosenza sikwazi ukuthola iminyaka yabantu ngabanye ngokubala umehluko phakathi kwedethi yabo yokuzalwa kanye nedethi yamanje.

Ake siqale ngokungenisa imitapo yolwazi edingekayo:

import pandas as pd
from datetime import datetime

Okulandelayo, cabanga ngedathasethi elula equkethe idatha elandelayo ngabantu ngabanye:

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

Kule khodi engenhla, siguqula ikholomu 'Yokuzalwa_Idethi' ibe izinto ze-DateTime.

Ibala Ubudala

Manje, sesilungele ukubala iminyaka yalaba bantu ngokuthola umehluko phakathi kosuku lwabo lokuzalwa kanye nosuku lwamanje. Ukuze wenze lokhu, landela lezi zinyathelo:

1. Dala umsebenzi obizwa ngokuthi 'calculate_age' othatha usuku lokuzalwa njengokufaka futhi obuyisela iminyaka yomuntu.
2. Sebenzisa lo msebenzi kukholamu 'Yokuzalwa_Idethi' ku-DataFrame.

Nansi ikhodi yokusebenzisa i-logic engenhla:

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)

Kule khodi amazwibela, sidale umsebenzi obizwa ngokuthi 'calculate_age' othola i-birth_date njengokufakwayo, obala idethi yamanje kusetshenziswa i-datetime.now(), futhi ibala iminyaka yomuntu ngokukhipha unyaka wakhe wokuzalwa onyakeni wamanje. Uma yabo usuku lokuzalwa aluzange lube khona kulo nyaka, sikhipha omunye unyaka.

Okokugcina, sisebenzisa lo msebenzi kukholamu 'Yosuku_Lokuzalwa' sisebenzisa indlela yokusebenzisa (), futhi iminyaka ebaliwe igcinwa kukholomu 'Yobudala' entsha ku-DataFrame.

Ukusebenzisa i-Numpy kanye ne-Pandas Ukubala Ubudala

Kungenjalo, singasebenzisa umtapo wolwazi we-numpy onamandla ngokuhlanganisa nama-panda kulo msebenzi. Ukuze uguqule izinsuku zokuzalwa zibe ubudala usebenzisa i-numpy, landela lezi zinyathelo:

1. Ngenisa umtapo wolwazi.
2. Sebenzisa umsebenzi 'ophansi' ukuze ubale iminyaka.

Nasi isibonelo sendlela yokwenza lokhu:

import numpy as np

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

Le khodi isebenzisa umsebenzi we-numpy's 'floor' ukuze ufinyeze umphumela wokuhlukanisa wephoyinti elintantayo le inani lezinsuku kusukela ngosuku lokuzalwa ngo-365.25 (kucatshangelwa iminyaka ye-leap).

Kafushane, ngokusebenzisa imitapo yolwazi efana nama-panda nesikhathi sosuku noma ama-panda kanye ne-numpy, kuba lula ukuguqula amakholomu edethi yokuzalwa abe ubudala phakathi kwedathasethi. Ukulandela izinyathelo ezichaziwe nokuqonda ikhodi enikezwe kulesi sihloko kuzokuhlomisa ngolwazi lokukhohlisa idatha enjalo futhi wenze ukuhlaziya okusebenza kahle nokunembe kakhudlwana.

Okuthunyelwe okuhlobene:

Shiya amazwana