繁体   English   中英

有没有一种更快的方式来写入或读取/读取大约一百万行的熊猫数据帧

[英]is there a Faster way to write or read in/to with pandas data frame with about 1 million row

我正在尝试对我的问题进行具体说明。 我有一个包含200多个列和100万以上行的数据框。 我正在将其读取或写入到excel文件中,如果我录制正确,则需要45分钟以上。

df = pd.read_csv("data_file.csv", low_memory=False, header=0, delimiter = ',', na_values = ('', 'nan'))
df.to_excel('data_file.xlsx', header=0, index=False)

我的问题-无论如何,我们可以用pandas数据帧更快地读写文件,因为这只是一个文件示例。 我还有更多这样的文件

两个想法:

  • 研究Dask ,它提供了像DataFrame这样的熊猫,它可以在多个CPU或群集之间分配大型数据集的处理。 很难说,如果您的性能纯粹是IO约束的,您将在多大程度上加快速度,但是当然值得研究。 快速浏览一下Dask用例 ,以了解其功能。

  • 如果您要重复读取相同的CSV输入文件,则建议将它们转换为HDF,因为读取HDF比读取等效的CSV文件快几个数量级。 就像将文件读入DataFrame然后使用DataFrame.to_hdf().写回一样简单DataFrame.to_hdf(). 显然,这只有在您可以一次完成一次转换之后再在每次运行代码时使用该点之后的HDF文件的情况下才有用。

问候,伊恩

您正在使用的文件很大。 如果您需要处理数据,那么您将无法避免漫长的读写时间。

不要写xlsx,使用csv,写xlsx会花费很长时间。 写入csv。 我的廉价SSD笔记本电脑需要一分钟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM