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

如何将多页堆叠文本文件高效转换为Pandas DataFrame

高效合并多页堆叠文本到Pandas DataFrame

核心思路

不需要手动创建大量单独的DataFrame,而是通过批量解析+分组合并的方式,利用Pandas原生的concat、groupby和pivot_table功能,一次性完成数据整理,既简洁又高效。

具体实现步骤

1. 读取文件并拆分页面

先将整个文件按空行拆分为独立页面,过滤掉无效的空内容:

import pandas as pd

# 读取目标文本文件
with open('your_data.txt', 'r', encoding='utf-8') as f:
    file_content = f.read()

# 按空行拆分页面,清理空白块
pages = [page.strip() for page in file_content.split('\n\n') if page.strip()]

2. 批量解析页面数据

遍历每个页面,提取TEST、MATERIAL标识,同时将表格数据转为DataFrame,并添加标识列用于后续分组:

processed_dfs = []
for page in pages:
    lines = page.split('\n')
    # 提取当前页面的TEST和MATERIAL信息(固定为第2、3行)
    current_test = lines[1].strip()
    current_material = lines[2].strip()
    
    # 读取表格数据(从第4行开始,按|分隔并清理空格)
    table_data = '\n'.join(lines[3:])
    page_df = pd.read_csv(
        pd.io.common.StringIO(table_data),
        sep='|',
        skipinitialspace=True,
        engine='python'
    )
    
    # 添加分组标识列
    page_df['TEST'] = current_test
    page_df['MATERIAL'] = current_material
    processed_dfs.append(page_df)

# 合并所有页面的DataFrame
full_df = pd.concat(processed_dfs, ignore_index=True)

3. 按TEST-MATERIAL组合合并数据

通过groupby分组后,将同一组合下的所有数据按Angle合并为宽表,这里提供两种高效方式:

方式一:利用分组合并
def merge_single_group(group):
    # 同一Angle下的Body列合并,保留第一个有效值(因为同Angle数据一致)
    merged = group.groupby('Angle').first().reset_index()
    return merged

# 分组并应用合并逻辑
final_df = full_df.groupby(['TEST', 'MATERIAL']).apply(merge_single_group).reset_index(drop=True)
方式二:长格式转宽格式(更直观)
# 转成长格式,便于后续透视
long_format_df = full_df.melt(
    id_vars=['TEST', 'MATERIAL', 'Angle'],
    var_name='Body_Column',
    value_name='Value'
)

# 透视转为宽表
final_df = long_format_df.pivot_table(
    index=['TEST', 'MATERIAL', 'Angle'],
    columns='Body_Column',
    values='Value',
    aggfunc='first'
).reset_index()

优势说明

  • 避免手动遍历创建大量DataFrame,减少内存开销和代码冗余
  • 利用Pandas内部优化的分组、合并逻辑,处理大规模数据时效率远高于手动方法
  • 代码结构清晰,易于维护和扩展(比如新增TEST或MATERIAL类型时无需修改核心逻辑)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:42:56