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

如何高效合并逐份读取的Vaex DataFrame至总TOTALDF?

Vaex合并大空格分隔文本文件为总DataFrame的高效方案

针对你处理超大空格分隔文本文件、需要合并为Vaex总DataFrame的需求,不需要先转HDF5,直接用Vaex本身的延迟加载特性就能高效完成,以下是两种实用方案:

核心思路

Vaex的DataFrame是延迟加载的,读取文件时不会把数据全部载入内存,合并操作也只是创建虚拟的逻辑视图,不会产生额外的内存开销,完全适配超大数据集场景。

方案一:逐个读取后批量合并

先收集所有文本文件对应的Vaex DataFrame,再一次性合并,代码示例:

import vaex
import glob

# 获取目标目录下所有空格分隔文本文件路径
file_paths = glob.glob("/path/to/your/files/*.txt")

# 逐个读取文件(vaex.read_csv支持指定空格分隔符)
# 如果文件有表头,去掉header=None参数
df_list = [vaex.read_csv(path, sep=' ', header=None) for path in file_paths]

# 合并为总DataFrame TOTALDF
TOTALDF = vaex.concat(df_list)

方案二:直接批量读取合并(更简洁)

用Vaex的open_many方法,直接传入所有文件路径,自动完成读取与合并,代码示例:

import vaex
import glob

file_paths = glob.glob("/path/to/your/files/*.txt")

# open_many自动识别文件格式,指定空格分隔符即可
TOTALDF = vaex.open_many(file_paths, sep=' ', header=None)

注意事项

  • 如果文件是多个连续空格分隔,把sep=' '改成sep='\s+'即可适配;
  • 若后续需要频繁读取合并后的数据集,可将TOTALDF保存为Vaex原生格式(如.hdf5或.arrow),仅做一次持久化即可:
    TOTALDF.export("/path/to/save/TOTALDF.hdf5")
    
  • 以上两种方案全程不需要将数据载入内存,相比提前转HDF5的方式,能节省大量格式转换的时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:50:48