Решено: преобразувайте колоната за дата на раждане във възрастови панди

Последна актуализация: 09/11/2023

В днешния свят анализът на данни става все по-важен и един от най-популярните инструменти, използвани от анализатори на данни и специалисти по данни, е 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. Приложете тази функция към колоната „Birth_Date“ в 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() и изчислява възрастта на лицето, като извади годината на раждане от текущата година. Ако техните рождената дата не се е случила тази година, изваждаме допълнителна година.

Накрая прилагаме тази функция към колоната „Birth_Date“ с помощта на метода apply() и изчислените възрасти се съхраняват в нова колона „Age“ в DataFrame.

Използване на Numpy и Pandas за изчисляване на възрастта

Като алтернатива можем да използваме мощната библиотека numpy в комбинация с pandas за тази задача. За да конвертирате датите на раждане във възрасти с помощта на 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 (като се вземат предвид високосните години).

В обобщение, чрез използване на библиотеки като pandas и datetime или pandas и numpy става безпроблемно преобразуването на колони с рождени дати във възраст в набор от данни. Следването на обяснените стъпки и разбирането на кода, предоставен в тази статия, ще ви въоръжи със знания за манипулиране на такива данни и извършване на по-ефективен и точен анализ.

Подобни публикации:

Оставете коментар