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

如何用Pandas从单个TXT文件提取多个DataFrame并分别保存?

用Pandas提取TXT中的多个DataFrame并分别保存

完全可以用Pandas实现这个需求,核心思路是先识别TXT中每个DataFrame的分隔位置,再逐块读取并保存。以下是具体实现代码:

import pandas as pd
from io import StringIO

# 读取txt文件内容,过滤空行
with open('df.txt', 'r') as f:
    lines = [line.strip('\n') for line in f if line.strip()]

# 拆分每个DataFrame的块
df_blocks = []
current_block = []
for line in lines:
    # 判断是否是表头行:行首非数字(索引行以数字开头)
    first_char = line.lstrip()[0] if line.lstrip() else ''
    if first_char.isalpha():
        # 遇到新表头,先把之前的块存入(如果有内容)
        if current_block:
            df_blocks.append('\n'.join(current_block))
            current_block = []
    current_block.append(line)
# 加入最后一个块
if current_block:
    df_blocks.append('\n'.join(current_block))

# 逐个处理每个块,保存为csv
for idx, block in enumerate(df_blocks, 1):
    # 用StringIO把字符串转为可读取的流
    df = pd.read_csv(StringIO(block), index_col=0)
    # 保存为csv,保留原格式的空格和结尾逗号
    df.to_csv(f'df{idx}.csv', float_format='%g')

代码说明:

  • 先读取txt所有行,过滤掉空行,避免干扰拆分逻辑。
  • 通过判断行首字符是否为字母(索引行以数字开头)来识别新DataFrame的表头,以此拆分出每个DataFrame的内容块。
  • 用StringIO将每个内容块转为Pandas可读取的对象,读取为DataFrame后保存为独立csv文件。
  • 保存时用float_format='%g'确保NaN和浮点数格式和原文件一致。

执行代码后,会生成df1.csv、df2.csv、df3.csv三个文件,完全匹配你期望的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:48:14