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

如何用Python/Pandas将TXT文件中的日期时间列转为指定格式

解决Pandas合并日期时间列并转换为datetime类型的问题

核心思路

直接拼接日期和时间字符串,通过pd.to_datetime指定对应格式完成转换,这是最简洁高效的方式;如果需要分步处理,也可以分别转换日期和时间后再合并。


步骤1:读取TXT文件

先确保正确读取文件,根据你的TXT字段分隔符(空格、制表符、逗号等)调整sep参数,示例如下:

import pandas as pd

# 假设字段用空格分隔,header=None表示无表头,names自定义列名
df = pd.read_csv('your_data.txt', sep='\s+', header=None, names=['index', 'date', 'time', 'other_fields'])

步骤2:合并并转换为datetime类型

方法一:拼接字符串直接转换(推荐)

利用pd.to_datetime的format参数匹配你的日期时间格式,一步到位:

# 拼接date(YYYYMMDD)和time(HHMMSS)字符串,指定格式转换
df['datetime'] = pd.to_datetime(df['date'] + df['time'], format='%Y%m%d%H%M%S')
  • 若你的日期是两位年份(如100301对应2010-03-01),把format里的%Y改成%y即可。
  • 如果存在无效的日期时间值,可添加errors='coerce'将其转为NaT(缺失时间值),方便后续处理:
    df['datetime'] = pd.to_datetime(df['date'] + df['time'], format='%Y%m%d%H%M%S', errors='coerce')
    

方法二:分步转换后合并

如果需要拆分处理日期和时间,可将日期转为datetime,时间转为timedelta后相加:

# 转换日期列
df['date_dt'] = pd.to_datetime(df['date'], format='%Y%m%d')
# 将HHMMSS格式转为HH:MM:SS,再转为timedelta类型
df['time_delta'] = pd.to_timedelta(
    df['time'].str.slice(0,2) + ':' + 
    df['time'].str.slice(2,4) + ':' + 
    df['time'].str.slice(4,6)
)
# 合并为datetime列
df['datetime'] = df['date_dt'] + df['time_delta']

可选:转为指定格式的字符串

如果需要将datetime类型转为YYYY-MM-DD HH:MM:SS格式的字符串列(注意:datetime类型建议保留原类型用于时间运算,字符串仅用于展示):

df['datetime_str'] = df['datetime'].dt.strftime('%Y-%m-%d %H:%M:%S')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:33:11