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

Python如何将object类型日期列移除时间后转换为datetime格式

实现方法

这里提供两种经过验证的可行方案,可根据你的实际需求选择:

方案1:先截断时间字符串再转换(更稳定,推荐)

该方案先把字符串中日期后的所有内容统一移除,再做格式转换,不会受后续时间格式变化影响:

# 第一步:按第一个冒号分割字符串,仅保留前面的日期部分
df['Transaction_date'] = df['Transaction_date'].str.split(':', n=1).str[0]
# 第二步:指定格式转换为datetime类型
df['Transaction_date'] = pd.to_datetime(df['Transaction_date'], format="%m/%d/%Y")

转换后Transaction_date列的类型为datetime64[ns],时间部分默认重置为00:00:00,完全不影响日期的使用和计算。

方案2:直接转换后剥离时间部分

如果不想修改原始字符串,也可以利用pandas的自动格式识别能力直接转换,再移除时间部分:

# 自动识别混合格式转换为datetime类型
df['Transaction_date'] = pd.to_datetime(df['Transaction_date'], infer_datetime_format=True)
# 仅保留日期:选择对应方法即可
## 方法A:保留datetime64类型,时间部分重置为0(适合后续需要做日期运算的场景)
df['Transaction_date'] = df['Transaction_date'].dt.normalize()
## 方法B:转换为Python原生date对象,完全无时间信息(适合仅需展示的场景)
# df['Transaction_date'] = df['Transaction_date'].dt.date

注意:如果你的数据中存在无效日期格式,可在pd.to_datetime方法中加入errors='coerce'参数,将无法识别的内容转换为空值NaT,避免转换报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:51:00