首页 > 解决方案 > 从 3 个大型 tsv/csv 文件中提取和组合数据

问题描述

我有 3 个大 tsv 文件,结构如下:

 file1 : id,f1,f2,name,f3
 file2 : id,f4,blah1,f5
 file3 : id,f5,f6,blah2

我想创建从其他文件中提取的第三个文件:

 result: id,name,blah1,blah2

目前我不能,因为只是试图加载 panda|vaex 中的一个文件会使进程崩溃,因为它试图读取整个文件..

怎么做.. ?

我将在 vaex 中使用生成的文件......我认为它仍然是 ~1G


f1 = vaex.read_csv('stuff.tsv',convert=True,sep='\t') 

接着 :

f1.join(f2,left_on='id',right_on='id')

标签: pythonpandascsvvaex

解决方案


'convert' 不会将文件加载到内存中......但以块的形式工作

f1 = vaex.read_csv('stuff.tsv',convert=True,sep='\t') 
f2 = vaex.read_csv('stuff2.tsv',convert=True,sep='\t') 

fx1 = f1['id','blah1']
fx2 = f2['id','blah2']

接着 :

ff = fx1.join(fx2,left_on='id',right_on='id')
ff.export_hdf5('file.hdf5')

推荐阅读