我阅读了一些与此主题相关的帖子,但没有任何效果。
我要转换为数据框的列dem_inclusiondate
和sae_hospit_date
,因为我需要进行生存分析,并且需要纳入日期和住院时间之间的持续时间
但是,这些列的类型是“系列”,我找不到将它们转换为日期类型的方法。
在您发表评论后我尝试了此操作
baseline_all_patients["dem_inclusiondate"]
.to_datetime(baseline_all_patients["dem_inclusiondate"], format="%Y-%m-%d")
但发生此错误:'Series' object has no attribute 'to_datetime'
对不起,我是新来的,我不知道我的问题是否很清楚
谢谢您的帮助。
答案 0 :(得分:0)
我相信这会有所帮助。让我们生成一些数据。
df = pd.DataFrame({'date_begin':['2020.6.7', '2020.5.3', '2020.1.1'],
'date_end':['2020.6.17', '2020.6.1', '2020.1.20']})
然后,在大熊猫中转换st的语法非常简单。在Documentation
中查看更多内容df['date_begin'] = pd.to_datetime(df['date_begin'], yearfirst=True)
df['date_end'] = pd.to_datetime(df['date_end'], yearfirst=True)
现在timeDeltas可能会给您带来一些问题。这是因为几个月和几年的长度不同。根据您要求的精度,您可能要使用Numpy(np)timedelta或熊猫自己的timedelta。
(df['date_end'] - df['date_begin']) / pd.Timedelta('1 days')
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'D')
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'M')
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'Y')