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

如何在Python中处理特定格式文本文件并生成目标DataFrame?

实现方案

你的原始文本规律很清晰:每组数据以前导空格较少的行开头(比如 2.0 0 3 9.15400),后续跟着缩进更多的行;需要提取开头行的最后一个数值(如9.15400),再把后续所有缩进行的数值拼接在它后面,最终转成DataFrame。

用Python + Pandas可以轻松实现,步骤如下:


1. 读取并预处理文本

先把文本文件读进来,过滤空行并保留原始缩进信息:

with open('你的文件名.txt', 'r') as f:
    # 保留非空行的原始内容(包括缩进)
    lines = [line for line in f if line.strip()]

2. 分组拼接数据

遍历所有行,按缩进区分起始行和后续行,把每组数据合并成一个列表:

result = []
current_group = []

for line in lines:
    # 统计当前行的前导空格数,区分起始行和后续行
    leading_spaces = len(line) - len(line.lstrip())
    # 把当前行的内容转成浮点数组
    nums = list(map(float, line.strip().split()))
    
    # 前导空格少的是起始行(比如≤2个空格)
    if leading_spaces <= 2:
        # 如果之前有未保存的组,先存入结果
        if current_group:
            result.append(current_group)
        # 初始化新组,只保留起始行的最后一个数值
        current_group = [nums[-1]]
    else:
        # 后续行的数值直接追加到当前组
        current_group.extend(nums)

# 别忘了把最后一组数据加入结果
if current_group:
    result.append(current_group)

3. 转换为DataFrame

用Pandas把整理好的列表转成DataFrame,短行会自动补NaN(如果不需要可以后续处理):

import pandas as pd

df = pd.DataFrame(result)
# 可以手动设置列名,比如df.columns = ['主值', '数值1', '数值2', ...]
print(df)

运行后输出的结构就完全符合你的需求,比如第一行就是9.15400 5.40189 0.77828 0.66432 0.44219 0.00000。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:09:24