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

Python/Pandas读取含负数文本文件时字段错位问题求解

解决方案

以下两种方案均适配你的场景,处理8.7万行数据无性能压力:


方案1:逐行正则匹配提取(稳定性最高)

直接通过正则匹配提取每行的4个科学计数法数值,完全忽略分隔符异常的影响:

import re
import pandas as pd

# 科学计数法格式匹配规则
pattern = r'[+-]?\d+\.\d+E[+-]?\d+'
data_list = []

with open("你的源文件路径.txt", "r", encoding="utf-8") as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        # 提取当前行所有符合格式的数值
        nums = re.findall(pattern, line)
        data_list.append([float(num) for num in nums])

# 生成标准DataFrame
df = pd.DataFrame(data_list, columns=["X Coordinate", "Y Coordinate", "Parameter 1", "Parameter 2"])

方案2:预处理补全分隔符后直接导入

如果需要生成标准CSV文件方便后续复用,可以先给缺失空格的负号补全分隔符,再直接导入:

import re
import pandas as pd
from io import StringIO

with open("你的源文件路径.txt", "r", encoding="utf-8") as f:
    raw_content = f.read()

# 仅给科学计数法E之后之外的负号前补空格
processed = re.sub(r'(?<!E)(-)', r' \1', raw_content)

# 直接读取处理后的内容生成DataFrame
df = pd.read_csv(
    StringIO(processed),
    sep="\s+",
    names=["X Coordinate", "Y Coordinate", "Parameter 1", "Parameter 2"]
)

# 可导出为标准CSV
# df.to_csv("processed_data.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:54:09