如何将熊猫系列转换为日期时间类型?

时间:2020-07-14 08:48:47

标签: pandas date series survival-analysis

我阅读了一些与此主题相关的帖子,但没有任何效果。

我要转换为数据框的列dem_inclusiondatesae_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'

对不起,我是新来的,我不知道我的问题是否很清楚

谢谢您的帮助。

1 个答案:

答案 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')