如何从熊猫中的出生日期计算年龄,Python(Jupyter Notebook)

时间:2019-11-23 07:42:01

标签: python pandas numpy datetime pandas-groupby

出生日期位于第13列

从第13列开始,我如何仅按年龄获取数据以进行操作并产生结果?

  

79年1月12日

与此同时,如何在以下情况下对数据进行相应的排序:

1. Children < 18
2. Youth 18-30
3. Adult 30-60
4. Senior > 60

enter image description here

2 个答案:

答案 0 :(得分:0)

from datetime import datetime

# current time
now = datetime.now()

# date of birth
birth = datetime.strptime("12-Jan-79", "%d-%b-%y")

age = int((now - birth).days/365)
print("Person's age is: " + str(age))

您也许可以将出生字符串转换为datetime并获得一个timedelta到现在。

答案 1 :(得分:0)

首先,我的18至30岁的朋友被称为“青年”会感到惊讶。 :) 这样做可能会有一些更优雅的方法,但这只是一个粗略的轮廓。 (我尚未对此进行测试。因此希望对您有所帮助)

from dateutil.relativedelta import relativedelta
import datetime
import pandas as pd

now= datetime.datetime.now()
child_split = now - relativedelta(years=18)
youth_split = now - relativedelta(years=30)
adult_split = now - relativedelta(years=60)
senior = now - relativedelta(years=200)

bins = pd.IntervalIndex.from_tuples([
 (datetime.datetime.now(), child_split),
 (child_split, youth_split), 
 (youth_split, adult_split), 
 (adult_split, senior)
])
df['new_column'] = pd.cut(df['DateOfBirth'], bins,
     labels=["child", "youth", "adult", "senior"])