python - 从 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')
解决方案
'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')
推荐阅读
- microsoft-graph-api - Microsoft Graph 刷新令牌到期
- node.js - 如何配置 IDE 以从资源管理器运行任何 node.js 文件?
- python - cross_val_score 与 sklearn 中的不同分类器的行为不同
- mongodb - 如何在 MongoDB 中将我的所有文本 _id 字段从“abc”更新为“xxx#abc”
- ios - Firebase Google 登录获取凭据
- java - 如何指定数组应从扫描仪接受哪些数字
- python - 结合 GridSearchCV 和 StackingClassifier
- python - 用于构建自动编码器的 keras.Flatten 的逆
- java - 无法在 Java 程序上得到想要的结果
- python - 如何使用 python 的 plotly express 将多个图形添加到单个选项卡