【发布时间】:2019-02-27 09:36:04
【问题描述】:
我有一个日期时间值(事件的日期),它是通过从 csv 文件导入日期值创建的。然后,我尝试通过从他们出生日期的日期时间中减去事件的日期时间来计算该人的年龄。这会在几天内给我一个答案 - 但我希望在几年内得到它。
为了从 excel csv 文件中导入数据,我使用了这个:
Patients = pandas.read_csv("Patients_SN.csv", parse_dates=True)
Patients['dateofbirth'] = pandas.to_datetime(Patients['dateofbirth'], format='%d/%m/%Y')
然后,我将患者数据与另一个名为 Transitions3 的(事件)数据集合并,以便每个事件在名为“dateofbirth”的列中包含该人的出生日期。
我已经能够使用以下方法获得一个数字(以天为单位),该数字代表该人在事件发生时的年龄:
Transitions3['AgeAtFirstEvent']=(Transitions3['FirstEventDate']-Transitions3['dateofbirth'])
正如我所说 - 这在几天内给了我答案
1782 days 00:00:00.000000000
- 但我希望以年为单位(以及年的分数,例如 45.5 年)。
我尝试使用以下代码将其更改为年
Transitions3['AgeAtFirstDial']= pandas.to_datetime(Transitions3['AgeAtFirstDial'], unit="y")
但我收到此错误: ValueError: cannot cast unit y
也试过了:
Transitions3['Age1stDial']=Transitions3['AgeAtFirstDial'].total_years()
但我明白了:
Traceback (most recent call last):
File "<ipython-input-22-3dc3b7338471>", line 1, in <module>
Transitions3['Age1stDial']=Transitions3['AgeAtFirstDial'].total_years()
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 4376, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'total_years'
有什么建议吗? 提前致谢。
【问题讨论】:
-
欢迎来到 StackOverflow。请提供Minimal, Complete and Verifiable example,以便人们重现您的错误并更好地帮助您
标签: python pandas date datetime