Đã giải quyết: chuyển đổi cột ngày sinh thành tuổi gấu trúc

Trong thế giới ngày nay, phân tích dữ liệu ngày càng trở nên quan trọng và một trong những công cụ phổ biến nhất được các nhà phân tích dữ liệu và nhà khoa học dữ liệu sử dụng là Python với thư viện gấu trúc. Pandas là một công cụ thao tác và phân tích dữ liệu mã nguồn mở mạnh mẽ cho phép thao tác dễ dàng với các chuỗi và cấu trúc dữ liệu. Một vấn đề phổ biến mà người dùng gặp phải là chuyển đổi ngày sinh thành tuổi để phân tích thực tế và chính xác hơn. Trong bài viết này, chúng tôi sẽ đi sâu vào cách giải quyết vấn đề này với các ví dụ và giải thích rõ ràng về việc triển khai mã.

Pandas là một công cụ linh hoạt thường liên quan đến việc làm việc với các đối tượng DateTime – đây là trường hợp khi xử lý ngày sinh. Bước đầu tiên để chuyển đổi ngày sinh thành tuổi yêu cầu phép tính số học đơn giản với thư viện DateTime. Điều này sẽ cho phép chúng tôi tìm tuổi của các cá nhân bằng cách tính toán sự khác biệt giữa ngày sinh của họ và ngày hiện tại.

Hãy bắt đầu bằng cách nhập các thư viện cần thiết:

import pandas as pd
from datetime import datetime

Tiếp theo, hãy xem xét một tập dữ liệu đơn giản chứa dữ liệu sau về các cá nhân:

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

Trong đoạn mã trên, chúng ta đang chuyển đổi cột 'Birth_Date' thành đối tượng DateTime.

tính tuổi

Bây giờ, chúng tôi đã sẵn sàng để tính tuổi của những cá nhân này bằng cách tìm sự khác biệt giữa ngày sinh của họ và ngày hiện tại. Để làm điều này, hãy làm theo các bước sau:

1. Tạo một hàm gọi là 'calculate_age' lấy ngày sinh làm đầu vào và trả về tuổi của người đó.
2. Áp dụng chức năng này cho cột 'Birth_Date' trong DataFrame.

Đây là mã để thực hiện logic trên:

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)

Trong đoạn mã này, chúng tôi đã tạo một hàm có tên là 'calculate_age' nhận đầu vào là ngày_sinh, tính ngày hiện tại bằng cách sử dụng datetime.now() và tính tuổi của một người bằng cách lấy năm hiện tại trừ đi năm sinh của họ. Nếu họ sinh nhật đã không xảy ra trong năm nay, chúng tôi trừ đi một năm nữa.

Cuối cùng, chúng tôi áp dụng chức năng này trên cột 'Birth_Date' bằng phương thức apply() và độ tuổi được tính toán được lưu trữ trong cột 'Tuổi' mới trong Khung dữ liệu.

Sử dụng Numpy và Pandas để tính tuổi

Ngoài ra, chúng ta có thể sử dụng thư viện numpy mạnh mẽ kết hợp với pandas cho nhiệm vụ này. Để chuyển đổi ngày sinh thành tuổi bằng cách sử dụng numpy, hãy làm theo các bước sau:

1. Nhập thư viện numpy.
2. Sử dụng hàm 'sàn' numpy để tính tuổi.

Đây là một ví dụ về cách thực hiện việc này:

import numpy as np

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

Mã này sử dụng chức năng 'sàn' của numpy để làm tròn kết quả phép chia dấu phẩy động của Số ngày kể từ ngày sinh bằng 365.25 (có tính đến các năm nhuận).

Tóm lại, bằng cách tận dụng các thư viện như pandas và datetime hoặc pandas và numpy, việc chuyển đổi các cột ngày sinh thành tuổi trong tập dữ liệu trở nên liền mạch. Làm theo các bước được giải thích và hiểu mã được cung cấp trong bài viết này sẽ trang bị cho bạn kiến ​​thức để thao tác dữ liệu đó và thực hiện phân tích chính xác và hiệu quả hơn.

bài viết liên quan:

Để lại một bình luận