因此,我有一个数据帧,其中的出生日期写为字符串'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)
答案 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,然后使用当前时间计算时间增量。
最后,您可以根据天数计算年数和月数。