我有100个文件要合并,每个文件有1亿行以索引为键。每个列的数量仅为2。
我曾尝试使用pandas
来将它们合并在一起,但似乎加入或合并超过一千万行的dataframe
非常慢。
还有其他将数据组合在一起的有效方法吗?内存不是问题,我正在使用256GB内存服务器。
filenames = ['fn1', 'fn2', 'fn3', 'fn4',....]
dfs = [pd.read_csv(filename, index_col=index_col) for filename in filenames)]
dfs[0].join(dfs[1:])
我放弃了使用pandas
合并数据。相反,我使用了hash table
来组合数据并将数据转换为Dataframe
。
答案 0 :(得分:0)
尝试将读取的CSV馈送到pd.concat()
,可能会更快:
filenames = ['fn1', 'fn2', 'fn3', 'fn4',....]
df = pd.concat([pd.read_csv(filename, index_col=index_col) for filename in filenames)], axis=1)