如何将字符串“ 2012-07-06T21:00:00.000Z”转换为日期时间格式以计算年龄

时间:2020-11-01 07:03:05

标签: python datetime type-conversion

因此,我有一个数据帧,其中的出生日期写为字符串'2012-07-06T21:00:00.000Z'(示例)。

我想据此计算用户的年龄。请注意,这是一个字符串,我想我需要将它设为日期时间才能计算出来。

非常感谢

我的代码(Python):

def calculate_age(born):
    born = datetime.strptime(born, "%Y-%m-%d'T'%H:%M:%S.%f%Z").date()
    today = date.today()
    return today.year - born.year - ((today.month, today.day) < (born.month, born.day))

df['age'] = df['birth_date'].apply(calculate_age) 

1 个答案:

答案 0 :(得分:0)

那:

import pandas as pd

df['birth_date'] = df['birth_date'].astype('datetime64[ns, UTC]')
df['age'] = pd.Timestamp.utcnow() - df['birth_date']
df['age_str'] = df['age'].apply(lambda td: f'{td.days//365}y{int((td.days/365 - td.days//365)*365/30)}m')

在这里,您首先将birth_date列转换为datetime dtype,然后使用当前时间计算时间增量。 最后,您可以根据天数计算年数和月数。

相关问题