
В днешния свят анализът на данни става все по-важен и един от най-популярните инструменти, използвани от анализатори на данни и специалисти по данни, е 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 става безпроблемно преобразуването на колони с рождени дати във възраст в набор от данни. Следването на обяснените стъпки и разбирането на кода, предоставен в тази статия, ще ви въоръжи със знания за манипулиране на такива данни и извършване на по-ефективен и точен анализ.