我有一个由不同列组成的DataFrame:我有两列是“出生日期”和“谋杀日期”。
我希望能够从DOM列的DOB列中减去每一行,这样我就可以知道某人谋杀时的年龄。有什么办法可以解决吗? 现在,它似乎正在工作(大部分)。我进行了以下修改:
df_1['Date of birth'] = pd.to_datetime(df_1['Date of birth'],
errors
=
'coerce')
df_1['Date of Murder revised'] = pd.to_datetime(df_1['Date of
Murder
revised'], errors = 'coerce')
df_1['Date at Murder'] = (df_1['Date of birth'] - df_1['Date of
Murder
revised'])
print(df_1['Date at Murder'].head(10))
这将为m提供以下输出: 0 -12395天 1 -9941天 2 -7651天 3钠 4 -9313天 5 -9184天
I would however like to get years, but when I do the same code above
like so:
df_1['Date at Murder'] = (df_1['Date of birth'] - df_1['Date of
Murder revised']) / 365.25
I get this output:
0 -34 days +01:32:38.932238
1 -28 days +18:47:33.388090
2 -21 days +01:15:53.593429
3 NaT
4 -26 days +12:03:26.981519
答案 0 :(得分:2)
如果DOM和DOB是日期时间类型,那么这应该可以完成工作:
df['Age'] = df.DOM - df.DOB
如果数据类型不是日期时间,则通过
进行转换df.DOM = pandas.to_datetime(df.DOM)
df.DOB = pandas.to_datetime(df.DOB)
df['Age'] = (df.DOM - df.DOB).dt.days/365.25