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

Python 2.7环境下使用Pandas将多空格分隔文件转换为CSV的方法

固定宽度/多空格分隔文件转标准CSV Pandas解决方案

场景适配说明

你提到的列宽固定、多空格分隔两种场景,Pandas都有原生方法支持,不需要手动做字符串截取,代码量大幅减少。

方案1:固定宽度文件读取(推荐)

适合你之前用列宽截取的业务场景,数百个字段也能自动处理,比分隔符匹配更稳定:

import pandas as pd

# 读取固定宽度文件
df = pd.read_fwf(
    "你的原始数据文件路径.txt",
    infer_nrows=200,  # 字段数量多的话可以调大该值,提升列宽推断准确率
    parse_dates=[["DATE", "TIME"]],  # 自动合并DATE、TIME列为时间戳类型
    keep_date_col=False  # 不需要保留原始DATE、TIME列的话设为False即可
)

# 导出为标准CSV
df.to_csv("输出的标准CSV路径.csv", index=False, encoding="utf-8-sig")

方案2:多空格/多符号分隔读取

如果你的字段是靠可变数量的分隔符(空格/点)区分,用该方案:

import pandas as pd

# 多空格分隔场景,sep用正则匹配1个及以上空白
df = pd.read_csv(
    "你的原始数据文件路径.txt",
    sep=r"\s+",
    parse_dates=[["DATE", "TIME"]],
    engine="python"
)

# 如果是样例中展示的多个点作为分隔符,把sep参数改为r"\.+"即可
# df = pd.read_csv("你的原始数据文件路径.txt", sep=r"\.+", parse_dates=[["DATE", "TIME"]], engine="python")

# 导出CSV
df.to_csv("输出的标准CSV路径.csv", index=False, encoding="utf-8-sig")

可选优化:自定义时间解析

如果默认时间解析不符合要求,可手动指定时间格式,解析精度更高:

from datetime import datetime

# 自定义时间解析函数,匹配你数据中的年-月-日 时:分:秒.毫秒格式
date_parser = lambda x: datetime.strptime(x, "%Y-%m-%d %H:%M:%S.%f")

# 把该参数传入read_fwf或read_csv即可,示例:
df = pd.read_fwf(
    "你的原始数据文件路径.txt",
    infer_nrows=200,
    parse_dates=[["DATE", "TIME"]],
    date_parser=date_parser,
    keep_date_col=False
)

结果验证

可以执行以下代码确认读取结果是否符合预期:

# 查看前5行数据
print(df.head())
# 查看字段类型,确认合并后的DATE_TIME列是datetime64类型,可直接作为绘图的X轴参数
print(df.dtypes)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 14:54:06