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

如何正确转换Pandas DataFrame中指定格式的日期时间数据

日期时间列转datetime类型解决方案

你现有的Date/Time列格式为mm/dd HH:MM:SS,缺少年份字段,直接调用无参数的pd.to_datetime会出现两种问题:要么pandas自动填充当前系统年份导致时间不符合实际业务,要么格式匹配失败,转换后还是字符串类型。

按以下步骤处理即可:

  • 先补全缺失的年份信息:如果你的所有数据都属于同一个年份(比如2024年),直接给日期字段拼接上年份前缀即可
# 按需替换成你实际对应的年份
df1['Date/Time'] = '2024/' + df1['Date/Time'].str.strip()

如果你的数据跨多个年份,且数据是按时间升序排列的,可以判断月日从12/31切换到01/01时自动递增年份,示例代码如下:

current_year = 2023 # 替换为数据起始年份
years = []
prev_month = None
for idx, date_str in df1['Date/Time'].items():
    month = int(date_str.split('/')[0])
    if prev_month is not None and month < prev_month:
        current_year += 1
    years.append(str(current_year))
    prev_month = month
df1['Date/Time'] = [y + '/' + d.strip() for y, d in zip(years, df1['Date/Time'])]
  • 之后指定格式调用pd.to_datetime完成转换,指定格式既可以避免识别错误,还能大幅提升转换速度
df1['Date/Time'] = pd.to_datetime(df1['Date/Time'], format='%Y/%m/%d %H:%M:%S')
  • 验证转换结果,执行以下代码如果输出datetime64[ns]即为转换成功
print(df1['Date/Time'].dtype)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:45:04