在Python dataframe中出生日期轉(zhuǎn)化為年齡的實現(xiàn)方法
我們在做數(shù)據(jù)挖掘項目或大數(shù)據(jù)競賽時,如果個體是人的時候,獲得的數(shù)據(jù)中可能有出生日期的Series,舉個簡單例子,比如這樣的一些數(shù):
# -*- coding: utf-8 -*-
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt %matplotlib inline
data = {'birth': ['10/8/00', '7/21/93', '6/14/01', '5/18/99', '1/5/98']}
frame = DataFrame(data)
frame

從數(shù)據(jù)來看,'10/8/00'之類的數(shù),最左邊的數(shù)表示月份,中間的數(shù)表示日,最后的數(shù)表示年度。
實際上我們在分析時并不需要人的出生日期,而是需要年齡,不同的年齡階段會有不同的狀態(tài),比如收入、健康、居住條件等等,且能夠很好地把不同樣本的差異性進行大范圍的劃分,而不是像出生日期那樣包含信息量過大且在算法訓(xùn)練時不好作為有效數(shù)據(jù)進行訓(xùn)練,age是一個很好地特征工程指示變量。
那如何把上述birth數(shù)據(jù)變?yōu)槟挲gage呢?
在這里用到datetime這個庫,如下:
(1)首先把birth轉(zhuǎn)化為標(biāo)準(zhǔn)時間格式
frame['birth'] = pd.to_datetime(frame['birth']) frame
(2)獲取當(dāng)前時間的年份,并減去birth的年份
import datetime as dt now_year =dt.datetime.today().year #當(dāng)前的年份 frame['age']=now_year-frame.birth.dt.year frame
在這里使用了dt.datetime.today().year來獲取當(dāng)前日期的年份,然后將birth數(shù)據(jù)中的年份數(shù)據(jù)提取出來(frame.birth.dt.year),兩者相減就得到需要的年齡數(shù)據(jù),如下:

有時候我們可能還會關(guān)注到人的出生月份與要預(yù)測變量的關(guān)系,比如人的星座就是很流行的一種以出生月份、日份來評估其對人的影響,也可以按這種方法去提取月、日數(shù)據(jù)。
總結(jié)
以上所述是小編給大家介紹的在Python dataframe中出生日期轉(zhuǎn)化為年齡的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python lambda 匿名函數(shù)優(yōu)點和局限性深度總結(jié)
這篇文章主要為大家介紹了Python lambda 匿名函數(shù)的優(yōu)點和局限性深度總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取
這篇文章主要介紹了如何使用python數(shù)據(jù)處理解決數(shù)據(jù)沖突和樣本的選取,其中主要包括 實際業(yè)務(wù)數(shù)據(jù)沖突、樣本選取問題、數(shù)據(jù)共線性等思路2021-08-08
Python基于paramunittest模塊實現(xiàn)excl參數(shù)化
這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

