【发布时间】:2018-10-10 14:57:25
【问题描述】:
我有 2 个文件,每个文件有 38374732 行,每个文件大小为 3.3 G。我正试图在第一列加入他们。为此,我决定将 pandas 与从 Stackoverflow 提取的以下代码一起使用:
import pandas as pd
import sys
a = pd.read_csv(sys.argv[1],sep='\t',encoding="utf-8-sig")
b = pd.read_csv(sys.argv[2],sep='\t',encoding="utf-8-sig")
chunksize = 10 ** 6
for chunk in a(chunksize=chunksize):
merged = chunk.merge(b, on='Bin_ID')
merged.to_csv("output.csv", index=False,sep='\t')
但是我遇到了内存错误(不足为奇)。我查看了带有 pandas 块的代码(类似于 How to read a 6 GB csv file with pandas),但是如何在一个循环中为两个文件实现它,我认为我不能对第二个文件进行分块,因为我需要查找列在整个第二个文件中。有没有办法解决这个问题?
【问题讨论】:
-
我改了问题,谢谢
标签: python pandas join dask chunks