You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:如何在DataFrame中拆分日期和时间

解决DataFrame日期时间拆分的AttributeError问题

嗨,我来帮你搞定这个问题~你碰到的AttributeError是因为strptime()是Python标准库datetime模块里的方法,不能直接调用在DataFrame对象上,这才触发了报错。下面是正确的操作步骤:

第一步:确保time_in列是datetime类型

你一开始用pd.to_datetime()的思路完全正确,但记得要把转换后的结果赋值回原列,这样后续才能用pandas专属的datetime属性操作:

df_all_data_0['time_in'] = pd.to_datetime(df_all_data_0['time_in'])

第二步:拆分日期和时间

有两种简单实用的方式可以实现你的需求:

方式1:用dt属性直接提取

pandas的datetime列有专属的dt属性,能直接获取date和time部分,转成字符串就是你要的格式:

# 提取日期字符串(如2018-01-13)
df_all_data_0['date_str'] = df_all_data_0['time_in'].dt.date.astype(str)
# 提取时间字符串(如13:17:29)
df_all_data_0['time_str'] = df_all_data_0['time_in'].dt.time.astype(str)

方式2:用strftime自定义格式

如果需要更灵活的格式控制(比如想把日期改成2018/01/13这种),可以用dt.strftime()来定制:

# 提取日期字符串
df_all_data_0['date_str'] = df_all_data_0['time_in'].dt.strftime('%Y-%m-%d')
# 提取时间字符串
df_all_data_0['time_str'] = df_all_data_0['time_in'].dt.strftime('%H:%M:%S')

额外小提示

如果不需要字符串格式,而是想要原生的datetime.date或datetime.time对象,直接去掉.astype(str)就可以了:

# 获取日期对象
df_all_data_0['date_obj'] = df_all_data_0['time_in'].dt.date
# 获取时间对象
df_all_data_0['time_obj'] = df_all_data_0['time_in'].dt.time

内容的提问来源于stack exchange,提问作者chu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:45:14