如何将 pandas 系列转换为 datetime 类型?
How to convert a pandas series into datetime type?
我阅读了一些与此主题相关的 post 但没有任何效果。
我正在尝试转换为名为 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'
抱歉我是新手,不知道我的问题是否清楚
感谢您的帮助。
我相信这应该有所帮助。让我们生成一些数据。
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')
我阅读了一些与此主题相关的 post 但没有任何效果。
我正在尝试转换为名为 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'
抱歉我是新手,不知道我的问题是否清楚
感谢您的帮助。
我相信这应该有所帮助。让我们生成一些数据。
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')