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

如何将Pandas DataFrame中相同前缀的日期与时间字符串列合并为datetime列

你可以通过提取列名前缀批量处理所有日期时间列对,不需要用pd.concat,直接拼接字符串后转datetime格式即可,实现代码如下:

import pandas as pd

# 提取所有唯一的列前缀(自动识别SH、DEL等所有前缀,无需手动指定)
prefixes = set()
for col in df.columns:
    if '_DATE' in col or '_TIME' in col:
        prefixes.add(col.split('_')[0])
prefixes = list(prefixes)

# 批量生成合并后的datetime列
for p in prefixes:
    df[f'{p}_DATETIME'] = pd.to_datetime(df[f'{p}_DATE'] + ' ' + df[f'{p}_TIME'])

说明

  • 代码会自动识别所有符合前缀_DATE、前缀_TIME命名规则的列对,即使你有十几组甚至更多前缀也不需要修改代码
  • 合并后生成的前缀_DATETIME列数据类型为datetime64,可直接用于后续的时间计算、筛选等操作
  • 如果原数据存在空的日期/时间值,转换后对应位置会自动生成NaT空时间值,不会抛出报错
  • 如果你不需要保留原始的DATE、TIME列,可以在代码最后追加删除逻辑:
# 删除原始日期、时间列
drop_cols = [col for col in df.columns if col.endswith(('_DATE', '_TIME'))]
df = df.drop(columns=drop_cols)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:24:04