【发布时间】:2015-09-27 16:45:56
【问题描述】:
我正在使用 python、pandas 和 scipy 进行一些数值模拟。 我运行一组场景,并为每个场景创建一个包含大量输出的详细数据框,并将其保存到单独的 CSV 文件中。每个 CSV 文件大约 900 KB。
我使用的行是,平庸的:
mydataframe.to_csv('myoutput.csv')
我的问题是:有没有办法加快导出过程?一些特定的参数,不同的库等。我之所以问,是因为写入 CSV 几乎占整个模拟时间的一半:运行 18 个场景需要 17 秒,其中 7.2 秒花费在 to_csv 方法中。
PS 我最初想写入 Excel,但这太慢了,根据我的另一个问题:Python: fastest way to write pandas DataFrame to Excel on multiple sheets
【问题讨论】:
-
您对此进行了分析吗?你能用
np.savetxt比较性能吗 -
每个数据框有 300 到 400 列。如何让 np.savetxt 写入列标题?我知道它有一个标题参数,但它似乎不接受列名列表。
-
正如您在文档 (docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html) 中所读到的,它是一个将写入文件开头的字符串。所以你可以做
','.join(mydataframe.columns) -
我无法让 np.savetxt 处理非数值数组,这是一个问题,因为我的数据框有很多文本字段。
标签: python csv pandas export-to-csv