如何将 pandas 系列转换为 datetime 类型?

How to convert a pandas series into datetime type?

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

我正在尝试转换为名为 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'

抱歉我是新手,不知道我的问题是否清楚

感谢您的帮助。

我相信这应该有所帮助。让我们生成一些数据。

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']})

然后在 pandas 中转换字符串的语法非常简单。在 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 或 pandas' 自己的 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')