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

pandas导入重复格式文本文件时无法用','分隔符拆分数据求助

结构化解析重复规律日志的解决方案

你之前遇到的ParserError报错是因为原始文本不是标准CSV格式,不同行的分隔符不统一,部分行用逗号分隔、部分行用空格分隔,强行通过CSV规则读取无法适配,完全可以直接解析原始TXT文件实现需求,具体实现如下:

实现逻辑

  • 首先确认数据分组规则:每组数据固定为11行,首行是时间戳,最后一行以BPA3字段结尾,按11行切割所有原始行即可拆分出所有独立数据组
  • 逐组解析字段:逗号分隔的行按, 拆分出键值对,空格分隔的电压行按空格拆分出单值,最后把每组所有字段拼接为单行数据
  • 所有组解析完成后统一转为DataFrame格式即可得到结构化表格

可运行代码

import pandas as pd

# 读取原始TXT文件,过滤空行
with open("你的原始数据文件.txt", "r", encoding="utf-8") as f:
    all_lines = [line.strip() for line in f if line.strip()]

# 按每组11行拆分所有数据
group_line_count = 11
data_groups = [all_lines[i:i+group_line_count] for i in range(0, len(all_lines), group_line_count)]

processed_rows = []
for group in data_groups:
    current_row = []
    # 首行加入时间戳
    current_row.append(group[0])
    # 处理第2-5行:逗号分隔的状态字段
    for line in group[1:5]:
        current_row.extend([item.strip() for item in line.split(",")])
    # 处理第6-9行:空格分隔的电压字段
    for line in group[5:9]:
        current_row.extend(line.split())
    # 处理第10-11行:剩余逗号分隔字段
    current_row.extend([item.strip() for item in group[9].split(",")])
    current_row.extend([item.strip() for item in group[10].split(",")])
    processed_rows.append(current_row)

# 生成结构化DataFrame,自动按规则命名列
df = pd.DataFrame(processed_rows)
df.index.name = "Index"
df.columns = [f"字段{i+1}" for i in range(df.shape[1])]

# 可以直接查看结果,或者导出为CSV
print(df.head())
df.to_csv("结构化输出结果.csv", encoding="utf-8-sig")

运行上述代码即可得到你需要的按行分组的结构化表格,完全匹配你给出的样例格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:01