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

如何将多个无后缀txt文件分别读入独立DataFrame后快速合并?

你好,针对你的需求,这里有一套既灵活又高效的实现方案,尤其针对你关心的速度问题做了重点优化:

实现独立DataFrames存储+高效合并的方案

首先不建议手动创建df1、df2这类硬编码的变量名——文件数量多的时候会非常繁琐,扩展性极差。推荐用字典存储单个文件的DataFrame,既方便管理,又能轻松实现后续合并。

第一步:批量生成独立的DataFrames

我们可以遍历所有目标文件,把每个文件对应的DataFrame存入字典,键可以用序号(比如df1、df2)或者文件名(你的文件名是时间戳,用它当键更直观,方便后续排查单个文件的数据):

import glob
import pandas as pd
import numpy as np

# 配置读取参数(和你当前的设置保持一致)
file_paths = glob.glob("path_in_dir")
col_names = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H')
dtype_spec = {col: np.float32 for col in col_names}  # 简化写法,和你原代码效果一致

# 用字典存储每个独立的DataFrame
individual_dfs = {}
for idx, file_path in enumerate(file_paths, start=1):
    # 方式1:用序号作为键,比如 df1、df2...
    individual_dfs[f'df{idx}'] = pd.read_table(
        file_path,
        delim_whitespace=True,
        names=col_names,
        dtype=dtype_spec
    )
    # 方式2:用文件名作为键(更直观,因为文件名是时间戳)
    # individual_dfs[file_path] = pd.read_table(...)

现在你可以通过individual_dfs['df1']或者individual_dfs['具体文件名']随时访问单个文件的DataFrame了。

第二步:最优最快的合并方式

你当前用循环append的方式效率极低——因为每次append都会创建一个新的DataFrame,循环次数越多,产生的临时对象越多,内存和时间开销都很大。最优方案是使用pd.concat()一次性合并所有DataFrame,这是Pandas官方推荐的批量合并方法,速度会快很多。

代码实现:

# 从字典中取出所有DataFrame,合并成一个大的DataFrame
all_data = pd.concat(individual_dfs.values(), ignore_index=True)

额外优化建议(进一步提升速度)

  1. 按时间排序文件:因为你的文件名是时间戳格式,合并前可以先对文件路径排序,确保最终的all_data是按时间顺序排列的:
file_paths = sorted(glob.glob("path_in_dir"))
  1. 并行读取(针对超大量文件场景):如果你的文件数量非常多(比如几百上千个),可以用多进程并行读取文件,进一步缩短读取时间:
from multiprocessing import Pool

def read_single_file(file_path):
    return pd.read_table(
        file_path,
        delim_whitespace=True,
        names=col_names,
        dtype=dtype_spec
    )

# 启动多进程池读取所有文件
with Pool() as pool:
    df_list = pool.map(read_single_file, file_paths)

# 合并结果
all_data = pd.concat(df_list, ignore_index=True)

注意:如果文件数量不多,单线程读取已经足够快,没必要用多进程(多进程本身有启动开销)。

  1. 保持dtype优化:你已经指定了float32的数据类型,这非常棒——相比默认的float64,内存占用直接减半,能大幅提升大文件的处理速度,继续保持这个设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:50:25