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

为何pd.to_datetime转换时分格式后显示默认日期?如何移除?

问题解答

原因分析

pandas的datetime类型是日期+时间的复合类型,必须同时包含日期和时间两个维度。当你只传入纯时间字符串(如"02:29")时,pandas会自动填充一个默认基准日期——1900-01-01,这是Python datetime模块的默认起始日期,用来补全datetime类型的完整性。

移除日期部分的三种方法

  • 转为时间间隔类型(Timedelta):如果你的数据代表时长或独立时间点,用pd.to_timedelta直接转换,结果仅保留时间维度:

    df["Time"] = pd.to_timedelta(df["Time"])
    # 若要仅显示时间部分,可进一步处理
    df["Time"] = df["Time"].astype(str).str.split().str[1]
    
  • 提取时间转为字符串:如果只需要纯时间格式的字符串,用dt.strftime提取并格式化:

    df["Time"] = pd.to_datetime(df["Time"], format='%H:%M').dt.strftime('%H:%M')
    # 输出示例:"02:29",类型为字符串
    
  • 转为纯时间对象:提取datetime中的time属性,得到原生Python的time对象,显示时仅展示时间:

    df["Time"] = pd.to_datetime(df["Time"], format='%H:%M').dt.time
    # 输出示例:datetime.time(2, 29),显示为"02:29"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:10