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

使用Year、Month等列创建DateTime列仅显示日期无时分如何解决

问题产生原因
  • 绝大多数情况是pandas的默认显示设置做了截断:只要DateTime列的存储类型是datetime64[ns],时分秒信息实际就完整保存在数据中,只是打印输出时为了排版简洁没有展示。
  • 小概率是你使用的pandas版本过旧,直接传入多列转换时无法正确识别Hour/Minute列,仅解析到日期维度。
  • 极少数情况是原始的时间列存在脏数据(比如非数值、缺失值、非法取值),导致转换时分时出错被自动忽略。
解决步骤
  1. 首先验证数据实际存储情况,运行以下代码查看类型:
print(df["DateTime"].dtype)

如果输出为datetime64[ns],说明数据本身没有问题,仅需修改pandas全局显示配置即可看到完整时间:

# 全局设置datetime列的显示格式
pd.set_option('display.datetime_format', '%Y-%m-%d %H:%M:%S')
  1. 如果数据类型不是datetime64[ns],或者修改显示配置后依然没有时分信息,换更稳妥的转换方式:
# 用字典映射时间参数的方式转换,兼容性最好
df["DateTime"] = pd.to_datetime({
    "year": df["Year"],
    "month": df["Month"],
    "day": df["Day"],
    "hour": df["Hour"],
    "minute": df["Minute"]
})
  1. 若以上操作依然无效,先校验原始列的数据合法性:
# 检查所有时间列是否为整数类型
print(df[["Year","Month","Day","Hour","Minute"]].dtypes)
# 转换为整数类型
df[["Year","Month","Day","Hour","Minute"]] = df[["Year","Month","Day","Hour","Minute"]].astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:51:02