在Python dataframe中出生日期轉(zhuǎn)化為年齡的實(shí)現(xiàn)方法
我們?cè)谧鰯?shù)據(jù)挖掘項(xiàng)目或大數(shù)據(jù)競(jìng)賽時(shí),如果個(gè)體是人的時(shí)候,獲得的數(shù)據(jù)中可能有出生日期的Series,舉個(gè)簡(jiǎn)單例子,比如這樣的一些數(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ù)表示年度。
實(shí)際上我們?cè)诜治鰰r(shí)并不需要人的出生日期,而是需要年齡,不同的年齡階段會(huì)有不同的狀態(tài),比如收入、健康、居住條件等等,且能夠很好地把不同樣本的差異性進(jìn)行大范圍的劃分,而不是像出生日期那樣包含信息量過大且在算法訓(xùn)練時(shí)不好作為有效數(shù)據(jù)進(jìn)行訓(xùn)練,age是一個(gè)很好地特征工程指示變量。
那如何把上述birth數(shù)據(jù)變?yōu)槟挲gage呢?
在這里用到datetime這個(gè)庫(kù),如下:
(1)首先把birth轉(zhuǎn)化為標(biāo)準(zhǔn)時(shí)間格式
frame['birth'] = pd.to_datetime(frame['birth']) frame
(2)獲取當(dāng)前時(shí)間的年份,并減去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ù),如下:
有時(shí)候我們可能還會(huì)關(guān)注到人的出生月份與要預(yù)測(cè)變量的關(guān)系,比如人的星座就是很流行的一種以出生月份、日份來評(píng)估其對(duì)人的影響,也可以按這種方法去提取月、日數(shù)據(jù)。
總結(jié)
以上所述是小編給大家介紹的在Python dataframe中出生日期轉(zhuǎn)化為年齡的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
利用Matplotlib實(shí)現(xiàn)單畫布繪制多個(gè)子圖
這篇文章主要介紹了利用Matplotlib實(shí)現(xiàn)單畫布繪制多個(gè)子圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Django實(shí)現(xiàn)翻頁(yè)的示例代碼
翻頁(yè)是經(jīng)常使用的功能,Django提供了翻頁(yè)器。用Django的Paginator類實(shí)現(xiàn),有需要了解Paginator類用法的朋友可參考。希望此文章對(duì)各位有所幫助2021-05-05python中的計(jì)時(shí)器timeit的使用方法
本篇文章主要介紹了python中的計(jì)時(shí)器timeit的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10利用信號(hào)如何監(jiān)控Django模型對(duì)象字段值的變化詳解
這篇文章主要給大家介紹了關(guān)于利用信號(hào)如何監(jiān)控Django模型對(duì)象字段值變化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼
marshmallow(Object serialization and deserialization, lightweight and fluffy.)用于對(duì)對(duì)象進(jìn)行序列化和反序列化,并同步進(jìn)行數(shù)據(jù)驗(yàn)證。這篇文章主要介紹了Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼,需要的朋友可以參考下2020-02-02python3+PyQt5 數(shù)據(jù)庫(kù)編程--增刪改實(shí)例
今天小編就為大家分享一篇python3+PyQt5 數(shù)據(jù)庫(kù)編程--增刪改實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06