在當今世界,數據分析變得越來越重要,數據分析師和數據科學家使用的最流行的工具之一是帶有 pandas 庫的 Python。 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. 將此函數應用於 DataFrame 中的“Birth_Date”列。
下面是實現上述邏輯的代碼:
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() 計算當前日期,並通過從當前年份減去出生年份來計算此人的年齡。 如果他們的 今年沒有生日,我們再減去一年。
最後,我們使用 apply() 方法將此函數應用於 'Birth_Date' 列,並將計算出的年齡存儲在 DataFrame 中新的 'Age' 列中。
使用 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)
此代碼使用 numpy 的“floor”函數來向下取整的浮點除法結果 天數 自出生日期起 365.25(考慮閏年)。
總之,通過利用 pandas 和 datetime 或 pandas 和 numpy 等庫,可以無縫地將數據集中的出生日期列轉換為年齡。 遵循解釋的步驟並理解本文提供的代碼將使您掌握操作此類數據並進行更有效和準確分析的知識。