是否有一个Python csv文件编写器可以匹配data.table的fwrite速度?

时间:2017-05-24 16:51:04

标签: python r csv pandas data.table

我想在Python中匹配R的{​​{1}} data.table::fwrite文件写入速度。

让我们检查一下时间。首先csv ...

R

使用library(data.table) nRow=5e6 nCol=30 df=data.frame(matrix(sample.int(100,nRow*nCol,replace=TRUE),nRow,nCol)) ta=Sys.time() fwrite(x=df,file="/home/cryo111/test2.csv") tb=Sys.time() tb-ta #Time difference of 1.907027 secs

的Python也是如此
pandas.to_csv

目前存在巨大的性能差距。一个主要原因可能是import pandas as pd import numpy as np import datetime nRow=int(5e6) nCol=30 df = pd.DataFrame(np.random.randint(0,100,size=(nRow, nCol))) ta=datetime.datetime.now() df.to_csv("/home/cryo111/test.csv") tb=datetime.datetime.now() (tb-ta).total_seconds() #96.421676 使用所有核心进行写入过程,而fwrite可能只是单线程。

我无法找到任何具有可与to_csv匹配的开箱即用csv文件编写器的Python软件包。我错过了什么吗?还有其他方法可以加快写入过程吗?

文件大小在两种情况下都约为400MB。代码在同一台机器上运行。 我尝试过data.table::fwritePython 2.73.4。我正在使用3.5R 3.3.2。在Python 3.4上,我使用的是data.table 1.10.4

0 个答案:

没有答案