在Pandas中把出生日期转换为年龄

您所在的位置:网站首页 出生日期划分为十类 在Pandas中把出生日期转换为年龄

在Pandas中把出生日期转换为年龄

2024-07-12 02:07| 来源: 网络整理| 查看: 265

在Pandas中把出生日期转换为年龄

在这篇文章中,我们将在pandas数据框架中把出生日期转换成年龄。我们将使用Pandas和datetime包来将出生日期转换成年龄。要将出生日期转换为年龄,首先要使用strptime()函数将给定的日期转换为正确的格式,然后用出生日期年份减去当前年份,并检查出生月份和出生日期是否大于当前月份和当前日期,如果是,则减去1,否则减去0。

步骤:

首先,我们使用strptime函数将给定的日期格式识别为日期、月份和年份。 然后我们使用 today 函数来获得今天的日期。 为了得到年龄,我们用出生年份减去当前年份。这就给出了年龄,但为了进一步计算准确的年龄,我们要检查出生月份和出生日期是否大于当前的月份和当前的日期,如果这个条件是真的,我们就从最终结果中减去1,因为即使当前的年份已经过去,但他的出生月份或出生日期仍然没有到来。

例子1:在这个例子中,我们将把一个单一的给定日期转换为年龄。

from datetime import datetime, date    born='26/01/2000' print("Born :",born)    #Identify given date as date month and year born = datetime.strptime(born, "%d/%m/%Y").date()    #Get today's date today = date.today()    print("Age :",       today.year - born.year - ((today.month,                                           today.day) < (born.month,                                                         born.day)))

输出:

Born : 26/01/2000 Age : 21

解释:在上述代码中,我们使用了datetime包并导入了datetime和时间。我们使用strptime函数来确定存储在出生变量中的日期,即我们确定26/01/2000为日期/月/年。然后我们使用 today() 函数来获得今天的日期。为了得到年龄,我们使用公式 today.year – born.year – ((today.month, today.day) < (born.month, born.day) 。在这里,我们从出生年份中减去当前年份,然后如果当前日期和月份没有超过出生日期和月份,我们就减去一个,因为他/她的出生日期和月份还未到来。

示例2:现在我们将使用一个有出生日期列的数据框架,并将其转换为年龄,然后将该列添加到该数据框架中。

import pandas as pd from datetime import datetime, date    # Creating a list of date of birth dob = {'DOB': ['13/05/1986', '12/12/2018', '23/04/2006']}    # Creating dataframe df = pd.DataFrame(data = dob)    # This function converts given date to age def age(born):     born = datetime.strptime(born, "%d/%m/%Y").date()     today = date.today()     return today.year - born.year - ((today.month,                                        today.day) < (born.month,                                                      born.day))    df['Age'] = df['DOB'].apply(age)    display(df)

输出:

在Pandas中把出生日期转换为年龄

解释:在上述代码中使用了pandas和datetime包。我们创建了一个有三行不同日期的DOB的数据框架。为了计算年龄,我们创建了一个年龄函数,使用strptime函数来识别日期/月/年的格式。然后我们使用 today() 函数来获得今天的日期。为了得到年龄,我们使用公式 today.year – born.year – ((today.month, today.day) < (born.month, born.day) 。在这个公式中,我们从出生年份中减去当前年份,然后如果当前日期和月份没有超过出生日期和月份,我们减去一个,因为他/她的出生日期和月份还没有到来。我们在这个函数中返回年龄,它被添加到 “年龄 “列中的新行。之后我们显示数据框。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3