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

2024-05-14 03:52:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想从中计算出用户的年龄。请注意,这是一个字符串,我想我需要它是datetime才能计算它

多谢各位

我的代码(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) 

Tags: 数据字符串用户示例dfagetodaydatetime
1条回答
网友
1楼 · 发布于 2024-05-14 03:52:41

那么:

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数据类型,然后使用当前时间计算时间增量。 最后,从天开始计算年数和月数

相关问题 更多 >