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

在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) 。在这个公式中,我们从出生年份中减去当前年份,然后如果当前日期和月份没有超过出生日期和月份,我们减去一个,因为他/她的出生日期和月份还没有到来。我们在这个函数中返回年龄,它被添加到 “年龄 “列中的新行。之后我们显示数据框。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程