У сучасному світі аналіз даних стає дедалі важливішим, і одним із найпопулярніших інструментів, який використовують аналітики даних і науковці, є 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», яка отримує значення birth_date як вхідні дані, обчислює поточну дату за допомогою 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, перетворювати стовпці дати народження на вік у наборі даних стає без проблем. Виконання пояснених кроків і розуміння коду, наданого в цій статті, озброїть вас знаннями, як маніпулювати такими даними та виконувати більш ефективний і точний аналіз.