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

如何使用Pandas将CSV中的数值型24小时时间列解析为时间格式

Pandas纯数字格式时间字段解析方案

核心问题答复

是否需要拼接OccurDate列完全取决于你的使用需求:

  • 若仅需要独立的24小时制时间对象(datetime.time类型),无需关联日期信息,不需要拼接,单独处理OccurTime列即可
  • 若需要得到带日期的完整时间戳(datetime64类型),用于后续时间序列计算、时间差统计等场景,则需要和OccurDate列拼接后统一解析

具体实现代码

方案1:单独解析时间列

纯数字格式的OccurTime实际是省略了前导零的4位时间值(例如345对应03:45),先补零到4位再按时间格式解析即可:

import pandas as pd
# 补零到4位后转换为time类型
df['OccurTime'] = pd.to_datetime(
    df['OccurTime'].astype(str).str.zfill(4),
    format='%H%M'
).dt.time

方案2:拼接日期列生成完整时间戳

import pandas as pd
# 生成4位格式的时间字符串
time_str = df['OccurTime'].astype(str).str.zfill(4)
# 拼接日期与时间后解析为datetime类型
df['occur_datetime'] = pd.to_datetime(
    df['OccurDate'] + ' ' + time_str,
    # 若OccurDate格式非年-月-日,可修改此处format参数匹配实际格式
    format='%Y-%m-%d %H%M',
    # 可选参数:非法值自动转为NaT避免报错
    errors='coerce'
)

注意事项

  • 若OccurDate列本身已经是datetime类型,可直接用pd.to_datetime(df['OccurDate'].dt.strftime('%Y-%m-%d') + ' ' + time_str)进行拼接
  • 遇到超过2359的异常时间值时,建议先做数据清洗再解析,避免出现非预期的转换结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:36:04