Python 使用Math在列之间进行日期时间转换
我有一个由不同列组成的数据框架:我有两列是“出生日期”和“谋杀日期” 出生日期如下: 谋杀日期如下: 我希望能够从DOM列中减去DOB列中的每一行,这样我就可以得到某人谋杀时的年龄。有什么办法吗? 现在,它似乎正在发挥作用(大部分)。我做了以下编辑:Python 使用Math在列之间进行日期时间转换,python,pandas,datetime,Python,Pandas,Datetime,我有一个由不同列组成的数据框架:我有两列是“出生日期”和“谋杀日期” 出生日期如下: 谋杀日期如下: 我希望能够从DOM列中减去DOB列中的每一行,这样我就可以得到某人谋杀时的年龄。有什么办法吗? 现在,它似乎正在发挥作用(大部分)。我做了以下编辑: df_1['Date of birth'] = pd.to_datetime(df_1['Date of birth'], errors = 'coerce') df_1['Date of Murder revised']
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
如果DOM和DOB是datetime类型,则应执行以下操作:
df['Age'] = df.DOM - df.DOB
如果数据类型不是datetime,则通过
df.DOM = pandas.to_datetime(df.DOM)
df.DOB = pandas.to_datetime(df.DOB)
df['Age'] = (df.DOM - df.DOB).dt.days/365.25
谢谢你的回复。问题是,尽管已将两列都转换为datetime对象,但仍出现以下回溯错误。TypeError:-:“str”和“str”的操作数类型不受支持。此错误表示列仍然是字符串,而不是datetime。你能检查一下df.dtypes的输出吗?它说两列都是对象,这让我很困惑,因为我认为date\u of_birth=pd。to\u datetime(date\u of_birth,errors='concurve')已经解决了这个问题,你能把你的代码添加到问题中吗。这将有助于发现问题。此外,如果我包括“.days”,我将获得一个AttributeError:“Series”对象没有属性“days”